gpt4 book ai didi

javascript - 如何在自动刷新前检查可用性?

转载 作者:行者123 更新时间:2023-11-30 18:12:01 25 4
gpt4 key购买 nike

我想定期更新网页,我希望浏览器仅在页面可用时更新。 11 月我正在使用这个:

<script language="javascript" type="text/javascript">
$(document).ready(function() {
setInterval("location.reload()", 66000);
});
</script>

如果页面由于某种原因不可用,是否可以更新?

最佳答案

你可以使用 ajax提前检查一个微小的资源,比如:

$(document).ready(function() {
setInterval(maybeRefresh, 66000);

function maybeRefresh() {
$.ajax({
url: "/path/to/tiny/resource",
type: "GET",
success: function() {
// That worked, do the full refresh
location.reload();
}
});
}
});

...但我倾向于认为你最好还是 load改为更新内容。将所有主要内容放入具有 id "main" 的元素中,然后:

$(document).ready(function() {
setInterval(function() {
$("#main").load("/path/to/new/content");
}, 66000);
});

#main 元素的内容替换为从 GET/path/to/new/content 接收到的内容。如果 GET 失败,则不更新。

我可能还会使用链式 setTimeout 而不是 setInterval 并通过尝试更积极地刷新来处理错误。像这样的东西:

$(document).ready(function() {
setTimeout(refresh, 66000);

function refresh() {
$.ajax({
url: "/path/to/new/content",
type: "GET",
success: function(html) {
// Success, update the content
$("#main").html(html);

// Reload in 66 seconds
setTimeout(refresh, 66000);
},
error: function() {
// Failed, try again in five seconds
setTimeout(refresh, 5000);
}
});
}
});

关于javascript - 如何在自动刷新前检查可用性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14348118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com