Следующий код используется для отслеживания обновлений из базы данных.Сохранение функции setTimeout после браузера бездействует
Проблема в том, что через некоторое время он перестанет работать (возможно, когда браузер не работает).
$(function() {
function Update() {
var postData = "";
$.ajax({
url: 'functions/ajax_api.php?dashboarddata',
type : 'post',
data: postData,
success: function(resp) {
$('#entradasmas7').html($('#entradasmas7' , resp).html());
$('#entradasmenos7').html($('#entradasmenos7' , resp).html());
// Call Update again after 30 seconds.
setTimeout(function() { Update(); }, 30000);
}
});
}
// Call postData the first time to start it off.
Update();
});
Как я могу заставить его работать непрерывно независимо от состояния браузера или называть его обратно, когда окно становится активным?
Вы можете упростить решение №1: написать 'setTimeout()' только один раз, в 'complete:' branch. – cFreed
По состоянию на JQuery 1.5 complete также вызывается jquery в случае успеха или ошибки –
Не уверен, чтобы понять, что вы имеете в виду: для меня просто потому, что 'complete:' происходит в любом случае, это подходящее место для размещения уникального 'setTimeout() '. – cFreed