Я использую этот код для обновления страницы 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 секунд, могу ли я обновить его после завершения предыдущего обновления?
$(document).ready(function() {
$.ajaxSetup({ cache: false });
setTimeout(function() {
$('.container').load('integra_data.php');
}, 2000);
});
$( document).ready(function(){})
все внутри этого будет запущено после завершения загрузки страницы. поэтому здесь должно быть отложено 2 секунды.
Если бы я понял, что вы хотите обновить содержимое div в бесконечном цикле, не так ли? Если это правильно, вы можете передать свой вызов функции load()
как complete
обратный вызов. Вы можете сделать что-то подобное (рекурсия):
$(document).ready(function() {
var loadFunction = function () {
$('.container').load('integra_data.php', loadFunction);
}
$.ajaxSetup({ cache: false });
loadFunction();
});
Функция loadFunction()
будет вызывать себя каждый раз, когда последний запуск завершен. Обратитесь к документам, если вы хотите узнать больше о complete
обратном вызове. Если вы добавите небольшую задержку, так как не всегда лучшая идея сделать запрос как можно быстрее, используйте функцию setTimeout()
. Вы можете добавить его в complete
обратный вызов.
Используйте setTimeout вместо setInterval.
refresh(); function refresh() { $('.container').load('integra_data.php', refresh); }
document.ready
означает, что загрузка полностью завершена