<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秒重新加载一次。任何答案都将有所帮助。 预先感谢。
答案 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>