Javascript обновить страницу php после завершения предыдущего обновления

0

Я использую этот код для обновления страницы PHP:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">// <![CDATA[
$(document).ready(function() {
$.ajaxSetup({ cache: false }); // This part addresses an IE bug. without it, IE will only load the first number and will never refresh
setInterval(function() {
$('.container').load('integra_data.php');
}, 2000); // the "3000" here refers to the time to refresh the div. it is in milliseconds.
});
// ]]></script>

<div class="container"><h3>Loading Data...</h3></div>

в javascript, а не обновлять каждые X секунд, могу ли я обновить его после завершения предыдущего обновления?

  • 0
    Так он будет постоянно обновляться без каких-либо задержек или как? Если да, просто используйте обратный вызов загрузки как: refresh(); function refresh() { $('.container').load('integra_data.php', refresh); }
  • 0
    я подумал, document.ready означает, что загрузка полностью завершена
Теги:

3 ответа

0
$(document).ready(function() {
  $.ajaxSetup({ cache: false }); 
  setTimeout(function() {
    $('.container').load('integra_data.php');
  }, 2000); 
});

$( document).ready(function(){}) все внутри этого будет запущено после завершения загрузки страницы. поэтому здесь должно быть отложено 2 секунды.

0

Если бы я понял, что вы хотите обновить содержимое div в бесконечном цикле, не так ли? Если это правильно, вы можете передать свой вызов функции load() как complete обратный вызов. Вы можете сделать что-то подобное (рекурсия):

$(document).ready(function() {
  var loadFunction = function () {
    $('.container').load('integra_data.php', loadFunction);
  }
  $.ajaxSetup({ cache: false }); 
  loadFunction();
});

Функция loadFunction() будет вызывать себя каждый раз, когда последний запуск завершен. Обратитесь к документам, если вы хотите узнать больше о complete обратном вызове. Если вы добавите небольшую задержку, так как не всегда лучшая идея сделать запрос как можно быстрее, используйте функцию setTimeout(). Вы можете добавить его в complete обратный вызов.

0

Используйте setTimeout вместо setInterval.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню