Navigation:reload() 方法
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Navigation 接口的 reload() 方法重新加载当前 URL,同时更新历史记录条目列表中对应的条目的状态。
语法
reload()
reload(options)
参数
options可选-
包含以下属性的选项对象:
state可选-
开发者定义的信息,将在导航完成后存储在关联的
NavigationHistoryEntry中,可通过getState()检索。这可以是任何数据类型。例如,你可能希望存储页面访问次数以用于分析目的,或者存储 UI 状态详细信息,以便视图可以与用户上次离开时完全相同地显示。存储在state中的任何数据都必须是可结构化克隆的。 info可选-
开发者定义的信息,将传递给
navigate事件,可在NavigateEvent.info中获取。这可以是任何数据类型。例如,你可能希望根据导航方式(向左滑动、向右滑动或返回主页)以不同的动画显示新导航的内容。可以传入一个字符串来指示要使用哪种动画,该字符串可作为info选项传入。
返回值
包含以下属性的对象:
committed-
当可见 URL 发生改变并且新的
NavigationHistoryEntry被创建时被兑现的Promise。 finished-
当
intercept()处理器返回的所有 promise 都被兑现时被兑现的Promise。这相当于当navigatesuccess事件触发时,兑现NavigationTransition.finishedpromise。
如果导航由于某种原因失败,则这两个 promise 中的某一个会被拒绝。
异常
DataCloneErrorDOMException-
如果
state参数中包含不可结构化克隆的值,则抛出此异常。
示例
>使用 info 和 state
async function handleReload() {
await navigation.reload({
info: { animation: "fade-in" },
state: { infoPaneOpen: true },
}).finished;
// 更新应用程序状态
// ...
}
重新加载页面并添加新的状态项:
async function handleReload() {
await navigation.reload({
state: { ...navigation.currentEntry.getState(), newState: 3 },
}).finished;
// 更新应用程序状态
// ...
}
规范
| Specification |
|---|
| HTML> # dom-navigation-reload-dev> |
浏览器兼容性
Loading…
参见
- 现代客户端路由:导航 API
- 导航 API 说明
- Domenic Denicola 的导航 API 在线演示