什么是最佳的方式做一个重定向,并在DART重载?
难道我们只是使用: window.location.href = window.location.href
?
什么是最佳的方式做一个重定向,并在DART重载?
难道我们只是使用: window.location.href = window.location.href
?
有几种不同的方式来处理URI的变化和每个人都有自己的目的。
当你想给用户发送到另一个URI:
window.location.assign('http://google.com')
这一个将用户带到谷歌,保持浏览历史记录(后退按钮历史)。 这就好比点击链接。
window.location.href = 'http://google.com'
与前述相同,只是另一种方式来做到这一点。 href
是一个二传手,使分配的情况发生。 我觉得以前的版本更干净。
window.location.replace('http://google.com');
然而, replace()
上的方法LocalLocation
对象不只是用户发送至谷歌,但也没有把原始页面会话历史记录,这意味着用户将不会从无休止的后退按钮噩梦困扰。
这是基本相同的HTTP重定向。 历史被跳过。
当你想要做一个重载/刷新。
window.location.assign(window.location.href)
重载当前页面完全相同的URI。 这不包含POST
数据。 一些资源(如图片等)可能我从缓存重新加载,所以它可能不是一个完整的重新加载。
这是基本相同按F5和跳过的发送POST
数据。
window.location.href = window.location.href
再次,同前。
window.location.reload()
重新加载页面的这种方式也导致POST
发送数据。 的“JavaScript版本” window.location.reload()
也支持指定是否跳过缓存与否的参数。 然而,目前的飞镖实现不支持该参数,默认为资源从缓存中提取。
此缓存参数可以被添加在一些点镖,但它现在还没有。 当到达时,你很可能只是传递true
作为第一个参数,然后它会像按Ctrl + Shift + R。
<a>
标签。 使用window.location.assign(url)
使用window.location.replace(url)
POST
数据。 使用window.location.reload()
POST
数据。 使用window.location.assign(window.location.href)
不适用,也许在未来。 它很可能是window.location.reload(true)
。