重新加载页面的方法之间的差异

Bri*_*ian 10 javascript browser

window.location.reload()
history.go(0)
window.location.href=window.location.href
Run Code Online (Sandbox Code Playgroud)

我注意到一个网站评论说,所有这三种方法都可用于重新加载页面.不满足于信任它,我在IE8,FF3和Opera 10中尝试了所有3种方法.我注意到firefox执行了缓存重新加载而不是对history.go(0)的真正重新加载,但是没有看到任何差异.但是,我想我在这里向社区询问他们在这些方法之间有什么区别.

Raf*_*ael 10

window.location.reload()和window.location.href = window.location.href之间的主要区别在于,如果存在,第一个将重新发送POST数据(浏览器会询问您是否要重新加载页面并重新发送数据),第二个只是更改URL忽略任何POST数据.

关于history.go(0),我们使用历史对象,因此浏览器可以使用页面的缓存版本,存储在内存中的某个位置.