JavaScript和JavaScript的区别是什么
window.location.href = window.location.href
and
window.location.reload()
功能呢?
JavaScript和JavaScript的区别是什么
window.location.href = window.location.href
and
window.location.reload()
功能呢?
当前回答
如果我没记错的话,window.location.reload()用POST数据重新加载当前页面,而window.location.href=window.location。href不包含POST数据。
正如@W3Max在下面的评论中所指出的那样,window.location.href=window.location. href。如果URL中有锚(#),href将不会重新加载页面-在这种情况下必须使用window.location.reload()。
同样,正如下面@Mic所指出的,window.location.reload()接受一个额外的参数skipCache,因此使用window.location.reload(true)浏览器将跳过缓存并从服务器重新加载页面。Window.location.reload (false)将做相反的事情,并在可能的情况下从缓存加载页面。
其他回答
如果你说window.location.reload(true),浏览器将跳过缓存并从服务器重新加载页面。Window.location.reload (false)将做相反的事情。
注意:window.location.reload()的默认值为false
区别在于
window.location = document.URL;
如果在URL中有一个散列(#)(后面有或没有一些东西),将不会重新加载页面,而
window.location.reload();
将重新加载页面。
如果我没记错的话,window.location.reload()用POST数据重新加载当前页面,而window.location.href=window.location。href不包含POST数据。
正如@W3Max在下面的评论中所指出的那样,window.location.href=window.location. href。如果URL中有锚(#),href将不会重新加载页面-在这种情况下必须使用window.location.reload()。
同样,正如下面@Mic所指出的,window.location.reload()接受一个额外的参数skipCache,因此使用window.location.reload(true)浏览器将跳过缓存并从服务器重新加载页面。Window.location.reload (false)将做相反的事情,并在可能的情况下从缓存加载页面。
在研究IE的一些异常行为时遇到了这个问题,特别是IE9,没有检查旧版本。似乎
window.location.reload();
结果在刷新,空白整个屏幕一秒钟,其中
window.location = document.URL;
更快地刷新页面,几乎察觉不到。
做一点更多的研究,并与fiddler的一些实验,似乎window.location.reload()将绕过缓存和从服务器重新加载,无论你是否传递布尔值,这包括再次获得所有的资产(图像,脚本,样式表等)。如果你只想让页面刷新HTML,这个窗口。Location =文档。URL将返回得更快,流量更少。
不同浏览器之间的不同之处在于,当IE9使用重载方法时,它会清除可见页面,并从头重新构建它,而FF和chrome则会等到获得新的资产,并在它们不同时重新构建它们。
如前所述,当url中存在散列(#)时修改href将不会重新加载页面。因此,我使用this来重载它,而不是正则表达式:
if (!window.location.hash) {
window.location.href = window.location.href;
} else {
window.location.reload();
}