html5 保存 搜索历史,html5 – 如何有效处理Dart中的浏览器历史记录(即后退按钮)?...

这篇博客探讨了如何利用HTML5的历史API在单页面应用中实现多页面导航的效果,避免页面重新加载。通过定义路径匹配器和映射到相应展示功能,结合锚点的onclick处理,可以创建平滑的导航体验。示例代码展示了在Dart中如何实现这一功能。
摘要由CSDN通过智能技术生成

HTML5定义了用于操作历史记录的新API,允许您在不重新加载窗口的情况下更改位置.有一篇关于Dive Into HTML5的精彩文章,展示了如何使用历史API在单页面应用中模拟多页面导航.它很容易翻译成Dart.

在带导航的单页应用程序中,我通常设置客户端代码的方式类似于在服务器上设置RoR或Django应用程序或Dart http服务器的方式:

>定义一组适用于窗口位置的匹配器

>将匹配器映射到显示虚拟页面或其他位置的函数

然后使其成为无缝体验:

>为所有锚点添加一个用于书签的href,但添加一个onclick处理程序来调用一个推送历史状态的函数,并使用preventDefault来防止重新加载.

>在初始页面加载时,读取URL并将其发送到(2)中的地图

样品:

main() {

// handle the back button

window.on.popState.add((_) => showPage());

}

showPage() {

String path = window.location.pathname;

if (path == '/') {

showFrontPage();

} else if (DETAIL_PAGE_URL.hasMatch(path)) {

String id = DETAIL_PAGE_URL.firstMatch(path).group(1);

showDetailPage(i);

}

}

showFrontPage() {

//... code to build a link to a detail page

detailAnchor.on.click.add((MouseEvent e) {

window.history.pushState(null,detail.title,detail.url);

e.preventDefault();

showDetailPage(detail);

},false);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值