Javascript.RU

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

setInterval исполняет функцию только однократно
Здравствуйте, уважаемые форумчане!
Прошу помочь в решении такой проблемы:
<script type="text/javascript">
                function show(url, block) {
                    //alert("show()" + url);
                    url_target = url;
                    $.ajax({
                        cache: false,
                        url: url_target,
                        success: function (html) {
                            block.html(html);
                        }
                    });
                }

                function showAll() {
                    show('../DataTable.html', $('#DataListPlaceholder'));
                    show('../Graph.html', $('#GraphPlaceholder'));
                }

                $(document).ready(function () {
                    setInterval(show('../DataTable.html', $('#DataListPlaceholder')), 5000);
                    setInterval(show('../Graph.html', $('#GraphPlaceholder')), 5000);
                });
</script>

Здесь вызовы функции show() происходят однократно, а не каждые 5 секунд. Файлы, передаваемые как url, поначалу могут не существовать, создаются контроллером (ASP.NET MVC) в фоновом потоке.
Хотелось бы, чтобы по мере создания/обновления файлов, они отражались на главной вьюшке.

С JavaSсript работаю впервые, поэтому прошу объяснять как тупому.
Заранее огромное спасибо за помощь!
Ответить с цитированием
  #2 (permalink)  
Старый 04.10.2016, 12:33
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,586

show(...) - это вызов функции.
Ваш setInterval соответственно пытается запустить результат вызова - то, что функция вернула.

Нужно либо:
setInterval(show, 5000);
а конкретные ссылки определять в самой функции, либо оборачивать:
setInterval(function(){
    show(...);
}, 5000);
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 04.10.2016, 12:48
Новичок на форуме
Отправить личное сообщение для Svarogich Посмотреть профиль Найти все сообщения от Svarogich
 
Регистрация: 04.10.2016
Сообщений: 2

спасибо большое! Теперь работает
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как правильно вызвать функцию только по success? imedia Элементы интерфейса 9 22.09.2014 08:43
Как отработать функцию только один раз eevr Общие вопросы Javascript 2 16.06.2014 21:22
Как запустить функцию, только если выполнились все события, на которые она подписана Shitbox2 jQuery 4 05.03.2013 10:40
Элементарный подсчет и калькулятор PashaShulga Общие вопросы Javascript 5 14.03.2012 21:42
setInterval как передать переменную в функцию kamushek Общие вопросы Javascript 6 02.09.2011 23:53