导航:reload() 方法

有限可用性

此功能不是基线,因为它在一些最常用的浏览器中不起作用。

实验性: 这是一个 实验性技术
在生产环境中使用之前,请仔细查看 浏览器兼容性表

reload() 方法是 Navigation 接口的方法,它会重新加载当前 URL,并更新历史记录条目列表中提供的任何状态。

语法

js
navigate(options)

参数

options 可选

包含以下属性的选项对象

state 可选

开发人员定义的信息,在导航完成后存储在关联的 NavigationHistoryEntry 中,可以通过 getState() 检索。它可以是任何数据类型。例如,您可能希望存储页面访问次数以用于分析目的,或者存储 UI 状态详细信息,以便在用户最后离开时准确显示视图。存储在 state 中的任何数据都必须是 结构化可克隆的

info 可选

开发人员定义的信息,将传递给 navigate 事件,并在 NavigateEvent.info 中提供。它可以是任何数据类型。例如,您可能希望根据导航到该内容的方式(向左滑动、向右滑动或返回主页),以不同的动画显示新导航的内容。表示要使用哪个动画的字符串可以作为 info 传递。

返回值

包含以下属性的对象

committed

一个 Promise,它将在可见 URL 更改且创建了新的 NavigationHistoryEntry 后完成。

finished

一个 Promise,它将在 intercept() 处理程序返回的所有承诺都完成时完成。这相当于 NavigationTransition.finished 承诺完成时,navigatesuccess 事件触发。

如果导航由于某种原因失败,则其中一个承诺将拒绝。

异常

DataCloneError DOMException

如果 state 参数包含不可结构化克隆的值,则会抛出此异常。

示例

使用 info 和 state

js
async function handleReload() {
  await navigation.reload({
    info: { animation: "fade-in" },
    state: { infoPaneOpen: true },
  }).finished;

  // Update application state
  // ...
}

重新加载页面并添加新的状态项

js
async function handleReload() {
  await navigation.reload({
    state: { ...navigation.currentEntry.getState(), newState: 3 },
  }).finished;

  // Update application state
  // ...
}

规范

规范
HTML 标准
# dom-navigation-reload-dev

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅