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

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);

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多个DataSet数据合并

DataSet ds myIAppSet.GetHomeHottestList(siteID, 0, time); DataSet ds1 myIAppSet.GetHomeHottestList(siteID, 1, time);if (ds1 ! null && ds1.Tables[0].Rows.Count > 0){ds.Merge(ds1);} Merge方法,用于DataSet、DataTable,多个字段…

math.js:灵活强大的JavaScript数学库

最近为期权开发一些基本技术指标,用到一些C的数学库,刚好看到JavaScript的math.js库,这里对math.js做一下简单介绍。一、什么是math.jsmath.js是一个广泛应用于JavaScript 和 Node.js的数学库,它的特点是灵活表达式解析器&#xf…

html的闪烁字,HTML最简单的文字闪烁代码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Titlekeyframes blink{0%{opacity: 1;}50%{opacity: 1;}50.01%{opacity: 0;}100%{opacity: 0;}}-webkit-keyframes blink {0% { opacity: 1; }50% { opacity: 1; }50.01% { opacity: 0; }100% { opacity: 0; }}-moz-keyframes blin…

video和dvd audio区别:

VIDEO 是视频,AUDIO是音频。DVD- Audio 是目前流行的DVD光碟格式的一种扩展,区别在于它能够传输先前所有音频载体格式无法携带的全新标准的高质量音频数据。最引人注目的特点是它多声道音频的能力。转载于:https://www.cnblogs.com/zjqqqq/p/5060931.htm…

Win10非常好用的6个使用技巧

很多人已经用上了Win10系统,为了提高使用效率掌握使用技巧尤为重要,今天我为大家分享win10的6个使用技巧。第一个:快速查找文件(win键E)想要打开某个文件,直接使用这个快捷键就可以打开资源管理器&#xff…

servlet html登录,Servlet实现用户登录

1、登录过程分析:通过表单收集用户的数据,Servlet通过request对象获得用户提交的数据,服务器还需要从数据库中通过sql语句查询有没有表单提交的数据中的用户。有则登录成功,否则,登录失败。2、工程结构:3、…

HTML5拖放API

HTML5拖放API 拖放事件 HTML5拖放API 拖放事件事件提供了拖放可以控制几乎所有方面的拖放操作。棘手的部分是确定每个事件触发:在拖项目火;别人火下降的目标。 拖动项时,以下事件(按照这个顺序):拖曳开始拖…

C#easyui combotree 设置节点折叠

树实体public class Combotree{public string id { get; set; }public string text { get; set; }public string state { get; set; }public List<Combotree> children { get; set; }} 只需要在初始化数据的时候给state 设置为 closed注意&#xff1a;不要在最后一级节点…

用于大型的科学计算的计算机,科学计算器广泛适用于大、中、小学生、教师、科研人员及其他各界...

科学计算器广泛适用于大、中、小学生、教师、科研人员及其他各界人士。相关句子1、机器人广泛应用于弧焊&#xff0c;点焊&#xff0c;涂胶&#xff0c;切割&#xff0c;搬运&#xff0c;码垛&#xff0c;喷漆&#xff0c;科研及教学。3、可以满足大学本科和研究生有关实验课教…

C#中AssemblyInfo.cs文件详解

1、.Net工程的Properties文件夹下自动生成一个名为AssemblyInfo.cs的文件&#xff0c;一般情况下我们很少直接改动该文件。但我们实际上通过另一个形式操作该文件。那就是通过在鼠标右键点击项目的属性进入“应用程序”->“程序集信息”&#xff0c;然后修改信息。2、通过特…

谈项目需求

&#xfeff;&#xfeff;三种客户类型&#xff1a; 1 的确很专业。能提供基本可用的文档&#xff0c;能给出要求规范&#xff0c;能向你提出有价值疑问和担心。能快速回答你的问题。2 以为自己很专业。 给的文档基本没法用。没法提供规范和标准&#xff0c;喜欢指指点点和挑毛…

html复制文字兼容手机,JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)...

新学习JavaScript&#xff0c;就碰到这么一个需求&#xff0c;几乎网上的方法都试过了。写出了总结下使用的方法&#xff1a;clipboard插件下载地址&#xff1a;https://github.com/zenorocha/clipboard.js/tree/master引入插件&#xff1a;目录\clipboard.js-master\dist\clip…

MVC5 Controller构造方法获取User为空解决方法

用如下方法获取UserId报空引用异常 public class BaseController : Controller {protected SiteContext db new SiteContext();protected Guid userId;public BaseController(){userId Guid.Parse(User.Identity.GetUserId());} } 由于Controller未初始化完成&#xff0c;Use…

计算机应用领域的CIMS,计算机的应用领域

计算机的应用领域近年来&#xff0c;计算机技术得到了飞跃发展&#xff0c;超级并行计算机技术、高速网络技术、多媒体技术、人工智能技术等相互渗透&#xff0c;改变了人们使用计算机的方式&#xff0c;从而使计算机几乎渗透到人类生产和生活的各个领域&#xff0c;对工业和农…

VS2015企业版专业版密钥

亲测可用&#xff0c;有需要的可以mark一下&#xff01;专业版&#xff1a;HMGNV-WCYXV-X7G9W-YCX63-B98R2企业版&#xff1a;HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

Thinkphp编辑器扩展类kindeditor用法

一&#xff0c; 使用前的准备。 使用前请确认你已经建立好了一个Thinkphp站点项目。1&#xff0c;Keditor.class.php和JSON.class.php 是编辑器扩展类文件&#xff0c;将他们拷贝到你的站点项目的ThinkPHP\Lib\ORG\Net 目录下。2&#xff0c;editor目录是kindeditor的核心包。将…

实时操作系统与通用计算机操作系统的区别,实时操作系统(RTOS)和通用操作系统(OS)之间的区别...

RTOS vs OS大多数人都熟悉电脑上使用的操作系统。用于个人电脑的最常见的操作系统包括&#xff1a;微软的Windows&#xff0c;苹果的OS X以及各种版本的Linux。但是多数人都不知道实时操作系统(缩写RTOS)&#xff0c;一种用于实时响应的更专业化的操作系统。RTOS和OS两者之间最…

Memcached的基础梳理

1 、Memcached 概念官方解释如下&#xff1a;What is Memcached?Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.Me…

html5 canvas 笔记五(合成与裁剪)

组合 Compositing globalCompositeOperation syntax: globalCompositeOperation type 注意&#xff1a;下面所有例子中&#xff0c;蓝色方块是先绘制的&#xff0c;即“已有的 canvas 内容”&#xff0c;红色圆形是后面绘制&#xff0c;即“新图形”。 source-over  这是默认…

一个能够编写、运行SQL查询并可视化结果的Web应用:SqlPad

SqlPad 是一个能够用于编写、运行SQL查询并可视化结果的Web应用。支持 PostgreSQL、MySQL 和 SQL Server。SqlPad 目前仅适合单个团队在内网中使用&#xff0c;它直接通过网络连接到数据库服务器&#xff0c;任何人可以在上面执行任意 SQL 语句。安装首先安装 Node.js.安装好No…