Как перезагрузить div через каждые 3 секунды? - PullRequest
0 голосов
/ 13 апреля 2020

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
      window.onload = setupRefresh;
function setupRefresh()
{
    setInterval("refreshBlock();",3000);
}

function refreshBlock()
{
   $('#time').load("Callgen1.html");
}
</script>

Я застрял и хотел, чтобы div перезагружался через каждые 3 секунды. Любой ответ будет полезен. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

Полагаю, вам действительно нужно обновить sh через 3 секунды после завершения предыдущего, чтобы не накапливать обновления, если для их загрузки требуется больше 3. Я добавил к задержке, чтобы вы могли видеть, что она делает это.

async function delay(delayMilliseconds) {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve(timeToWait);
    }, delayMilliseconds);
  });
}
let timeToWait = 1000;

function redoLoad(forHowLong) {
  console.log("called redoLoad: " + forHowLong);
  // for fun, change the delay, then reset it again
  forHowLong = timeToWait >= 5000 ? 1000 : forHowLong + 1000;
  $('#time').load("Callgen1.html", function(responseText, textStatus, jqXHR) {
    console.log(textStatus);
    timeToWait = forHowLong;
    sampleDelay(forHowLong);
  });
}
async function sampleDelay(waitTime) {
  console.log("before ");
  let delayres = await delay(waitTime)
    .then(function(v) {
      redoLoad(v);
    });
  console.log("after:" + waitTime);
}
sampleDelay(timeToWait);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="time">howdy</div>
0 голосов
/ 13 апреля 2020

Я внес несколько изменений в ваш вопрос, вам нужно передать ссылку на функцию, а не строковый объект в методе setInterval .

пожалуйста, обратитесь к ответу ниже, он перезагрузит ваш div каждые 3 секунды вы можете поместить ваш метод загрузки вместо моего кода "$ ('# time'). html (new Date ());" решить вашу цель

*{color:white;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script type="text/javascript">
      
function setupRefresh()
{
    setInterval(refreshBlock,3000);
}
setupRefresh()

function refreshBlock()
{
   $('#time').html(new Date());
}
</script>

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