setInterval срабатывает слишком часто
Уважаемые знатоки, подскажите пожалуйста!
Использую setInterval для динамической загрузки информации. Но почему-то вне зависимости от того, какой интервал я ставлю, функция срабатывает раз в секунду. Если, например, выводить алерт вместо подгрузки файла - интервал устанавливается правильно.
function tabl()
{
$.ajax({
url: "testsourse.php",
cache: false,
success: function(html){
$("#content").html(html);
}
});
}
$(document).ready(function(){
setInterval(tabl,10000);
});
testsourse.php - сделала просто вывод времени
echo date("h:i:s");
|
novichok2017,
Не поленился, проверил ваш пример - выдает очередной результат через 10 сек, как и задано. Проверял в Хроме и в ИЕ11 |
Вложений: 1
Да уж, загадка.
Я тоже проверил, всё отрабатывает с интервалом почти ровно 10с. |
Спасибо большое за ответы! Но у меня так и не работало, ни в хроме, ни в мозиле. Переписала немного, теперь работает. Но хотелось бы конечно понять, почему у меня не работал тот вариант, а у вас работал...
function tabl()
{
$.ajax({
url: "testsourse.php",
cache: false,
success: function(html){
$("#content").html(html);
}
});
}
setInterval(tabl, 10000);
Уважаемый exec, подскажите пожалуйста, что за инструмент который показывает время выполнения круга? мне бы очень пригодился для обучения. |
novichok2017,
Действительно, очень странно. Вот мой тестовый вариант в полном виде:
<!DOCTYPE html>
<html >
<head>
<title>Untitled Page</title>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script>
function tabl() {
$.ajax({
url: "testsourse.php",
cache: false,
success: function (html) {
$("#content").html(html);
}
});
}
$(document).ready(function () {
setInterval(tabl, 10000);
});
</script>
</head>
<body>
<div id='content'></div>
</body>
</html>
и файл testsourse.php содержит <?php echo date("h:i:s"); ?> - и все нормально работает (пробовал и с другими версиями jQuery) |
novichok2017, просто засекаете время старта и вычисляете разницу с текущим временем:
<div id="timer"></div>
<script>
var start = +new Date();
setInterval(update, 1000 * Math.random());
function update() {
document.getElementById("timer").innerHTML += "<div>time passed: " + ((+new Date() - start) / 1000) + "sec</div>";
}
</script>
|
exec,
Спасибо большое! |
Dilettante_Pro, Спасибо. Ваш вариант заработал, сейчас буду сравнивать, хотя на первый взгляд у меня также...
|
| Часовой пояс GMT +3, время: 03:47. |