在Dart中进行重定向和重新加载的首选方法是什么?

我们是否只使用:window.location.href = window.location.href

推荐答案

有几种不同的方法来处理URI更改,每种方法都有自己的目的.

  1. 当您想将用户发送到另一个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重定向相同.将跳过历史记录.

  2. 当您想要执行重新加载/刷新时.

    • 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.

摘要

  • I want to simulate a click on 100 tag.

使用window.location.assign(url).

  • I want to redirect to a new website like the HTTP redirection and skip the back-button history.

使用window.location.replace(url).

  • I want to do an F5 with 100 data.

使用window.location.reload().

  • I want to do an F5 without 100 data.

Use window.location.assign(window.location.href)个.

  • I want to do an Ctrl + Shift + F5.

不可用,可能在将来.可能是window.location.reload(true).

Dart相关问答推荐

什么相当于 dart 中的 JAVA ThreadLocal?

在 Flutter 中从树中临 timeshift 除时保留小部件状态

如何通过点击 BottomNavigationBarItem 以编程方式打开Drawer抽屉?

一键式 Flutter 工具提示

如何在 Flutter 中将 textEditiing 控制器与 Provider 一起使用

如何从 Flutter App 连接 Ms SQL?

try 部署到 Google AppEngine 时出现 Dev_appserver.py 错误

Dart/Flutter判断值是否为整数

如何go 除字符串中的变音符号?

Angular 2,使用 body 作为根 Select 器,而不是 my-app

Flutter 在整个屏幕上禁用touch

如何在Flatter中设置特定容器中所有文本的 colored颜色 ?

如何将 Stream 转换为 List

将ListTile图标向左对齐

无法使用 Flutter 调用 Localhost,将随机端口分配给 HTTP GET 调用

如何在 Dart 中将字符串转换为 utf8?

如何重新引发异常并保留堆栈跟踪?

如何以 Dart 语言将变量完全转储/打印到控制台?

你如何在 Dart 中创建一个 Stream?

Dart 中的with关键字