gpt4 book ai didi

url - 如何在 Dart 中以正确的方式重定向和重新加载?

转载 作者:行者123 更新时间:2023-12-02 01:33:58 31 4
gpt4 key购买 nike

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

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

最佳答案

有几种不同的方法来处理 URI 更改,每种方法都有自己的用途。

  1. 当您想要将用户发送到另一个 URI 时:

    • window.location.assign('http://google.com')

      这会将用户发送到 Google,并保留浏览历史记录(后退按钮历史记录)。这就像点击链接一样。

    • window.location.href = 'http://google.com'

      与上面相同,只是另一种方式。 href是一个 setter,并导致分配发生。我觉得以前的版本更干净。

    • window.location.replace('http://google.com');

      但是, replace() 方法 LocalLocation 对象不仅会将用户发送到 Google,而且不会将原始页面放入 session 历史记录中,这意味着用户不会遭受无休止的后退按钮噩梦。

      这本质上与 HTTP 重定向相同。历史记录被跳过。

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

    • window.location.assign(window.location.href)

      将当前页面重新加载到完全相同的 URI。这包含POST数据。某些资源(如图像等)可能会从缓存中重新加载,因此可能不是完全重新加载。

      这本质上与按 F5 并跳过 POST 的发送相同。数据。

    • window.location.href = window.location.href

      再次,与之前相同。

    • window.location.reload()

      这种重新加载页面的方式也会导致 POST要发送的数据。 window.location.reload() 的“JavaScript 版本”还支持指定是否跳过缓存的参数。但是,当前的 Dart 实现不支持该参数,默认从缓存中获取资源。

      这个缓存参数可能会在某个时候添加到 Dart 中,但目前还没有。当它到达时,您很可能只是通过 true作为第一个参数,然后它就像 Ctrl + Shift + R

摘要

  • 我想模拟点击<a>标签。

使用window.location.assign(url) .

  • 我想重定向到新网站(例如 HTTP 重定向)并跳过后退按钮历史记录。

使用window.location.replace(url) .

  • 我想使用 POST 执行 F5数据。

使用window.location.reload() .

  • 我想做一个没有 POSTF5数据。

使用window.location.assign(window.location.href) .

  • 我想做一个Ctrl + Shift + F5

不可用,也许将来会出现。可能是window.location.reload(true) .

关于url - 如何在 Dart 中以正确的方式重定向和重新加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13109233/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com