gpt4 book ai didi

Javascript:强制从服务器重新加载,如何?

转载 作者:行者123 更新时间:2023-12-02 20:26:26 24 4
gpt4 key购买 nike

我今天刚刚发现了一段代码,因为我需要刷新我的页面,以便 PHP 脚本可以再次运行以每分钟左右显示来自数据库的新结果。

if (document.images)
setTimeout('location.reload(true)',1000*60*15); // forces a reload from the server
else
setTimeout('location.href = location.href',1000*60*15); // just reloads the page

两者有什么区别?我的意思是他们不重新加载页面吗? JS 代码如何强制从服务器重新加载?

谢谢大家

最佳答案

如果页面上有图像,代码段将尝试重新加载整个页面,否则它只是重定向到同一页面本身。 p>

使用 location.reload(true);true 参数会导致页面始终从服务器重新加载。

但该条件始终为true,因为 document.images是一个 HTMLCollection,它永远不会计算为 false,即使页面上没有图像, bool 表达式中唯一计算为 false 的值为 >nullundefined0NaN、空字符串,当然还有 false

如果您想让该条件起作用,您应该检查 document.imageslength 属性,length 属性是数字,并且这意味着仅当其值为 0 时,它才会计算为 false:

if (document.images.length) {
setTimeout(function () {
location.reload(true); // forces a reload from the server
}, 1000*60*15);
} else {
setTimeout(function () {
location.href = location.href;
}, 1000*60*15); // just reloads the page
}

还请注意,我现在使用函数表达式而不是字符串作为 setTimeout 的第一个参数,如果使用字符串,则代码将在运行时评估(相当于 eval 调用),这实际上并不是一个好的做法。

关于Javascript:强制从服务器重新加载,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2035604/

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