Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.03.2017, 17:17
Новичок на форуме
Отправить личное сообщение для novichok2017 Посмотреть профиль Найти все сообщения от novichok2017
 
Регистрация: 14.03.2017
Сообщений: 4

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");
Ответить с цитированием
  #2 (permalink)  
Старый 14.03.2017, 18:34
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

novichok2017,
Не поленился, проверил ваш пример - выдает очередной результат через 10 сек, как и задано. Проверял в Хроме и в ИЕ11

Последний раз редактировалось Dilettante_Pro, 14.03.2017 в 18:40.
Ответить с цитированием
  #3 (permalink)  
Старый 14.03.2017, 18:45
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Да уж, загадка.
Я тоже проверил, всё отрабатывает с интервалом почти ровно 10с.
Изображения:
Тип файла: jpg 1.jpg (60.6 Кб, 11 просмотров)
Ответить с цитированием
  #4 (permalink)  
Старый 15.03.2017, 16:09
Новичок на форуме
Отправить личное сообщение для novichok2017 Посмотреть профиль Найти все сообщения от novichok2017
 
Регистрация: 14.03.2017
Сообщений: 4

Спасибо большое за ответы! Но у меня так и не работало, ни в хроме, ни в мозиле. Переписала немного, теперь работает. Но хотелось бы конечно понять, почему у меня не работал тот вариант, а у вас работал...

function tabl()
		{
			$.ajax({
				url: "testsourse.php",
				cache: false,
				success: function(html){
					$("#content").html(html);
				}
			});
		}

		
		        setInterval(tabl, 10000);



Уважаемый exec, подскажите пожалуйста, что за инструмент который показывает время выполнения круга? мне бы очень пригодился для обучения.
Ответить с цитированием
  #5 (permalink)  
Старый 15.03.2017, 16:50
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

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)
Ответить с цитированием
  #6 (permalink)  
Старый 16.03.2017, 03:03
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

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>
Ответить с цитированием
  #7 (permalink)  
Старый 16.03.2017, 09:23
Новичок на форуме
Отправить личное сообщение для novichok2017 Посмотреть профиль Найти все сообщения от novichok2017
 
Регистрация: 14.03.2017
Сообщений: 4

exec,
Спасибо большое!
Ответить с цитированием
  #8 (permalink)  
Старый 16.03.2017, 09:45
Новичок на форуме
Отправить личное сообщение для novichok2017 Посмотреть профиль Найти все сообщения от novichok2017
 
Регистрация: 14.03.2017
Сообщений: 4

Dilettante_Pro, Спасибо. Ваш вариант заработал, сейчас буду сравнивать, хотя на первый взгляд у меня также...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ускоряется setInterval Tord002 Общие вопросы Javascript 1 10.12.2015 23:09
Оптимизация JS WeMeSder Общие вопросы Javascript 0 13.06.2014 23:51
Не срабатывает setInterval dvomaks Общие вопросы Javascript 1 04.04.2014 19:08
setTimeout setInterval и др. mycoding Общие вопросы Javascript 6 28.10.2010 17:26
Проблема в document.write при использовании setInterval() GOll Общие вопросы Javascript 21 06.10.2008 17:38