Я отображаю график, используя jQplot для мониторинга данных.Чтобы обновить div, содержащий график, я вызываю ajax-вызов каждые 5 секунд (см. Выдержку JavaScript ниже).На сервере PHP-скрипт извлекает данные из базы данных.В случае успеха вызов ajax повторно вызывается через 5 секунд с помощью JavaScript setTimeout (ajax, 5000).В случае ошибки вызов ajax повторяется 10 раз с помощью setTimeout (ajax, 5000) перед отображением сообщения об ошибке.Мониторинг XHR обнаруживает, что браузер падает после примерно 200 запросов.В качестве временного средства исправления location.reload () выдается после 50 итераций, чтобы предотвратить сбой браузера.Это работает, но не идеальная ситуация.Любое лучшее решение этой проблемы очень ценится.
Спасибо и всего наилучшего, JZB
function ajax() {
$.ajax({
cache: false,
url: 'monitor.php',
data : { x: id },
method: 'GET',
dataType: 'json',
success: onDataReceived,
error: onDataError
});
function onDataReceived(series) {
$('#chartdiv_bar').html('');
$.jqplot('chartdiv_bar', [series['initHits']], CreateOptions(series,'Inits'));
errorcount = 0;
setTimeout(ajax, 5000);
}
function onDataError(jqXHR, textStatus, errorThrown) {
errorcount++;
if (errorcount == 10) {
alert("No server response:\n\n" + textStatus + "\n" + errorThrown);
} else {
setTimeout(ajax, 5000);
}
}
}