在Dart中进行重定向和重新加载的首选方法是什么?
我们是否只使用:window.location.href = window.location.href
?
在Dart中进行重定向和重新加载的首选方法是什么?
我们是否只使用:window.location.href = window.location.href
?
有几种不同的方法来处理URI更改,每种方法都有自己的目的.
当您想将用户发送到另一个URI时:
window.location.assign('http://google.com')
个
它将用户发送到Google,保存浏览历史记录(后退按钮历史记录).这就像点击一个链接.
window.location.href = 'http://google.com'
和上面一样,只是另一种方式.href
是设置器,并导致赋值发生.我觉得以前的版本更干净.
window.location.replace('http://google.com');
然而,LocalLocation
对象上的replace()
方法不仅将用户送到Google,而且不会将原始页面放在会话历史中,这意味着用户将不会遭受无休止的后退按钮噩梦.
这本质上与HTTP重定向相同.将跳过历史记录.
当您想要执行重新加载/刷新时.
window.location.assign(window.location.href)
个
将当前页重新加载到完全相同的URI.这not确实包含POST
个数据.一些资源(如图像等)我可以从缓存重新加载,因此可能不是完全重新加载.
这实质上等同于按F5并跳过POST
个数据的发送.
window.location.href = window.location.href
个
再一次,和之前一样.
window.location.reload()
这种重新加载页面的方式也会导致发送POST
数据.window.location.reload()
的"JavaScript版本"还支持指定是否跳过缓存的参数.但是,当前的DART实现不支持该参数,并且默认从缓存获取资源.
此缓存参数可能会在某个时候添加到DART,但它还不在那里.当它到达时,您很可能只需传递true
作为第一个参数,然后它将类似Ctrl+Shift+R.
使用window.location.assign(url)
.
使用window.location.replace(url)
.
使用window.location.reload()
.
Use window.location.assign(window.location.href)
个.
不可用,可能在将来.可能是window.location.reload(true)
.