3 ответов:
как другие указали setInterval и setTimeout будет делать трюк. Я хотел бы выделить немного более продвинутую технику, которую я узнал из этого отличного видео пола Айриша:http://paulirish.com/2010/10-things-i-learned-from-the-jquery-source/
для периодических задач, которые могут занять больше времени, чем интервал повтора (например, HTTP-запрос на медленное соединение), лучше не использовать
setInterval(). Если первый запрос не завершен и вы начинаете другой, вы можете оказаться в ситуации, когда у вас есть несколько запросов, которые потребляют общие ресурсы и голодают друг друга. Вы можете избежать этой проблемы, ожидая, чтобы запланировать следующий запрос, пока последний не будет завершен:// Use a named immediately-invoked function expression. (function worker() { $.get('ajax/test.html', function(data) { // Now that we've completed the request schedule the next one. $('.result').html(data); setTimeout(worker, 5000); }); })();для простоты я использовал обратный вызов успеха для планирования. Нижняя сторона этого-один неудачный запрос остановит обновления. Чтобы избежать этого, вы можете использовать полный обратный вызов вместо этого:
(function worker() { $.ajax({ url: 'ajax/test.html', success: function(data) { $('.result').html(data); }, complete: function() { // Schedule the next request when the current one's complete setTimeout(worker, 5000); } }); })();
Да, вы можете использовать либо JavaScript
setTimeout()способ илиsetInterval()метод для выполнения кода, который вы хотите запустить. Вот как вы можете сделать это с помощью setTimeout:function executeQuery() { $.ajax({ url: 'url/path/here', success: function(data) { // do something with the return value here if you like } }); setTimeout(executeQuery, 5000); // you could choose not to continue on failure... } $(document).ready(function() { // run the first time; all subsequent calls will take care of themselves setTimeout(executeQuery, 5000); });
можно использовать
setTimeoutилиsetInterval.разница - функции setTimeout вызывает функцию только один раз, и затем вы должны установить его снова. setInterval продолжает запускать выражение снова и снова, если вы не скажете ему остановить
Comments