如何每3秒重新加载div?

时间:2020-04-13 10:55:25

标签: javascript jquery html

<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 :(得分:0)

我对您的问题所做的更改很少,您需要传递对函数的引用,而不是setInterval方法中的字符串对象。

请参考以下答案,它将每3秒重新加载div,您可以将加载方法替换为我的代码“ $('#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>

答案 1 :(得分:0)

我的猜测是,您真正想要的是在上一个操作完成后实际刷新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>