Bri*_*ian 188 javascript
JavaScript之间有什么区别
window.location.href = window.location.href
Run Code Online (Sandbox Code Playgroud)
和
window.location.reload()
Run Code Online (Sandbox Code Playgroud)
功能?
Dav*_*one 237
如果我没记错的话,window.location.reload()用POST数据重新加载当前页面,window.location.href=window.location.href而不包括POST数据.
正如@ W3Max在下面的评论中所指出的,window.location.href=window.location.href如果URL中有锚(#),则不会重新加载页面 - window.location.reload()在这种情况下必须使用.
此外,如下面@Mic所述,window.location.reload()需要一个额外的参数,skipCache以便使用window.location.reload(true)浏览器将跳过缓存并从服务器重新加载页面.window.location.reload(false)将执行相反的操作,并尽可能从缓存加载页面.
Mic*_*Mic 50
如果您说window.location.reload(true)浏览器将跳过缓存并从服务器重新加载页面.window.location.reload(false)会做相反的事情.
注:default值window.location.reload()是false
Fab*_*ger 30
不同之处在于
window.location = document.URL;
Run Code Online (Sandbox Code Playgroud)
如果URL中有一个哈希(#)(有或没有东西),则不会重新加载页面,而
window.location.reload();
Run Code Online (Sandbox Code Playgroud)
将重新加载页面.
mpl*_*jan 18
如果将boolean true添加到重新加载
window.location.reload(true),它将从服务器加载.
目前尚不清楚这个布尔是如何支持的,W3Org提到NS 曾经支持它
window.location.href和document.URL的内容可能有区别- 至少有一点是location.href与非标准和已弃用的document.location之间的区别,它与重定向有关,但是真的是上一个千年.
出于文档目的,我将使用window.location.reload(),因为这是你想要做的.
min*_*ior 14
如上所述,当url中存在散列(#)时修改href将不会重新加载页面.因此,我使用它来重新加载它而不是正则表达式:
if (!window.location.hash) {
window.location.href = window.location.href;
} else {
window.location.reload();
}
Run Code Online (Sandbox Code Playgroud)
遇到这个问题研究IE中的一些异常行为,特别是IE9,没有检查旧版本.它似乎
window.location.reload();
Run Code Online (Sandbox Code Playgroud)
导致刷新,整个屏幕空白一秒钟,在那里
window.location = document.URL;
Run Code Online (Sandbox Code Playgroud)
几乎不知不觉地更快地刷新页面.
做一些更多的研究,以及对fiddler的一些实验,似乎window.location.reload()将绕过缓存并从服务器重新加载,无论你是否传递布尔值,这包括获取所有资产(图像,脚本,样式表,等)再次.因此,如果您只是希望页面刷新HTML,那么window.location = document.URL返回的速度会更快,流量也会减少.
浏览器之间的行为差异是,当IE9使用重新加载方法时,它会清除可见页面并且似乎从头开始重建它,其中FF和chrome等待它们获得新资产并在它们不同时重建它们.
| 归档时间: |
|
| 查看次数: |
240679 次 |
| 最近记录: |