Как заставить функцию вызываться мгновенно, а затем вызываться каждые 5000 мс - PullRequest
3 голосов
/ 17 марта 2019

У меня есть эта функция, которая обновляется каждые 5000 мс.Однако, когда я загружаю страницу, она ждет 5000 мс, затем вызывает функцию в первый раз, а затем ждет 5000 мс, чтобы обновить ее снова и снова.

Я хочу сделать так, чтобы при загрузке страницы она мгновенно вызывалафункция в первый раз, а затем ждет 5000 мс, чтобы вызвать его снова и снова.Как я могу это сделать?

setInterval(function() {
    document.getElementById("test").innerHTML = "js works";
}, 5000);
<div id="test"></div>

Ответы [ 3 ]

1 голос
/ 17 марта 2019

Вы можете использовать setTimeout с IIFE .

(function loop() {
  document.getElementById("test").innerHTML = "js works";
  console.log(new Date().getTime());
  setTimeout(loop, 5000); // Run the loop function for every 5000 ms.
}()); // Run the loop function at first time.

Примерно так:

(function() {

  (function loop() {
    document.getElementById("test").innerHTML = "js works";
    console.log(new Date().getTime());
    setTimeout(loop, 5000);
  }());

}());
<div id="test"></div>
1 голос
/ 17 марта 2019

Использовать !function IIFE синтаксис с setTimeout:

!function refresh () {
  document.getElementById("test").innerHTML = Date.now()
  setTimeout(refresh, 5000)
}()
<div id="test"></div>
1 голос
/ 17 марта 2019

Проще всего просто вызвать функцию самостоятельно в первый раз:

function my_func()
{
    document.getElementById("test").innerHTML = "js works";
    console.log("js works");
}

my_func();
setInterval(my_func(), 5000);
<div id="test"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...