2015-04-24 4 views
2

У меня есть веб-страница, которая работает на сервере Python Bottle. У меня есть часть JQuery, которая вызывает запрос GET каждую секунду, поэтому я могу обновить часть своей страницы. Он работает нормально около 8 часов .. но затем, когда я оставляю его работать на ночь, браузер падает.Почему мое веб-приложение рушится после нескольких запросов GET?

Вот мой запрос GET (который на самом деле является .load() функция, так что я могу обновить только часть моей страницы):

$('#hiddenDataDiv').load(document.URL + " #hiddenDataDiv", function(result) { 
    if (numberOfDivs > 0){ 
    for (i = 0; i < numberOfDivs; i++) { 
    radioResult[i] = $('#data'+i).text(); 
    }} 
}); 

Это называется каждый второй и посылает запрос GET на мой Сервер Python Bottle запрашивает новые данные, которые генерируются моим скриптом Python.

Я новичок в работе на стороне сервера, так что я вызываю какую-то утечку памяти? Проблемы с кешем? Есть ли лучший способ обновить мою страницу в течение длительных периодов времени?
Кроме того, есть ли что-то, что я могу найти в своем инспекторе Google Chrome, который мог бы дать мне ключ?

EDIT: Полный код функции:

function pollInputs(){ 

$('#hiddenDataDiv').load(document.URL + " #hiddenDataDiv", function(result) { 
    if (numberOfDivs > 0){ 
    for (i = 0; i < numberOfDivs; i++) { 
    radioResult[i] = $('#data'+i).text(); 
    }} 
}); 


if (radioResult[0] != undefined){ 
     if (numberOfDivs > 0){ 
    for (i = 0; i < numberOfDivs; i++) { 
    document.getElementById("input"+i).innerHTML = radioResult[i]; 
     }} 
    } 

} 
+1

'Это называется каждый второй. Надеюсь, ваш сайт не имеет пользователей .... Вы собираетесь его забивать. Как вы генерируете запросы? Что вы делаете с ответом? – epascarello

+2

Сервер, возможно, занимает больше секунды, чтобы ответить, поэтому вы получаете отставание, и оно растет все больше и больше. – Barmar

+0

@epascarello Сайт будет находиться в локальной сети, поэтому на страницу будут доступны только 1 или 2 пользователя. Запрос генерируется кодом, который я опубликовал. –

ответ

0

Не вызвать следующий запрос, пока после того, как вы обработали предыдущий, чтобы предотвратить большое отставание от застройки.

function pollInputs(){ 

    $('#hiddenDataDiv').load(document.URL + " #hiddenDataDiv", function(result) { 
     if (numberOfDivs > 0){ 
      for (i = 0; i < numberOfDivs; i++) { 
       radioResult[i] = $('#data'+i).text(); 
      } 
     } 
     setTimeout('pollInputs()', 1000); 
    }); 


    if (radioResult[0] != undefined){ 
     if (numberOfDivs > 0){ 
      for (i = 0; i < numberOfDivs; i++) { 
       document.getElementById("input"+i).innerHTML = radioResult[i]; 
      } 
     } 
    } 
} 
+0

Этот ответ основан на догадках о том, что убивает приложение. Вы можете протестировать его за день до принятия. – Barmar

+0

Я запустил его снова на ночь ... он работал на Chrome, но мой Internet Explorer (11) застыл! Я мог видеть, что мой скрипт python все еще работает, но, к сожалению, я не смог щелкнуть Internet Explorer, чтобы проверить консоль или что-то еще. Какие-нибудь советы о том, как я могу найти источник проблемы? –

+0

Может быть, открыть инструменты разработчика в IE, прежде чем вы начнете? – Barmar