html5入门教程(八)history详解

html-css016

html5入门教程(八)history详解,第1张

HTML5新添加了对历史的管理,用户可以通过”前进”和”后退”按钮进行历史页面的切换。这让一些不在新页面中打开的新页面前进后退自如,提高了用户体验。

通过haschange事件,可以知道URL的参数什么时候发生了变化,也就是什么时候该有所反应。通过状态管理的API,能够在不加载新页面的情况下改变浏览器的URL。所以需要使用history.pushState()方法。history.pushState()方法接收三个参数:1.要存的内容 2.标题(一般写个空的字符串) 3.地址(可选)。小例子如下

执行了history.pushState()方法后,新的状态信息就会被加入到历史状态栈,而浏览器地址栏也会变成新的相对URL。但是,浏览器并不会想服务器发送请求,即使历史状态改变之后查新location.href也会返回与地址栏中相同的地址。另外,第二个参数目前还没有浏览器实现,所以完全可以只传入一个空字符串即可,或者一个短标题也可以。第一个参数则应该尽可能提供初始化页面状态所需的各种信息。

因为history.pushState()方法会创建新的历史状态,所以会发现”后退”按钮也可以使用了。按下”后退”按钮,会触发window对象的popstate事件。Popstate事件的事件对象有一个state属性,这个属性就包含着当初以第一个参数传递给pushState()的状态对象。小例子如下

更新状态直接更新当前地址栏的内容,他不会产生后退操作,只是单纯修改当前地址。

要更新当前历史状态,可以调用replaceState(),传入的参数与pushState()方法的前两个参数相同。调用replaceState()不会在历史状态栈中创建新状态,只会重写当前状态。小例子如下

网上例子:

他这个还是创建了一个数组,然后把生成的内容存到数组中,在根据传的值

把数组对应的内容给读出来。

history有个问题是第一次点击是无效的,只有第二次才能起作用。这就非常的不爽了。

通常我们也不会需要他执行特别复杂的操作,反而是hash非常的好用。

hash是直接在url后面加一个#,然后立即可以被onpopstate事件检测到。

于是我们可以这样去做:

"HTML历史

l 超文本标记语言(第一版) -- 在1993年6月发为互联网工程工作小组(IETF)工作草案发布(并非标准)

l HTML 2.0 -- 1995年11月作为RFC 1866发布,在RFC 2854于2000年6月发布之后被宣布已经过时

l HTML 3.2 -- 1996年1月14日,W3C推荐标准

l HTML 4.0 -- 1997年12月18日,W3C推荐标准

l HTML 4.01(微小改进) -- 1999年12月24日,W3C推荐标准

l ISO/IEC 15445:2000(""ISO HTML"")--2000年5月15日发布,基于严格的HTML 4.01语法,是国际标准化组织和国际电工委员会的标准

l XHTML 1.0 -- 发布于2000年1月26日,是W3C推荐标准,后来经过修订于2002年8月1日重新发布

l XHTML 1.1 -- 于2001年5月31日发布

l XHTML 2.0

l XHTML 1.0 -- 发布于2000年1月26日,是W3C推荐标准,后来经过修订于2002年8月1日重新发布"

百度百科摘的

超文本标记语言(第一版)——在1993年6月作为互联网工程工作小组(IETF)工作草案发布(并非标准):

HTML 2.0——1995年11月作为RFC 1866发布,在RFC 2854于2000年6月发布之后被宣布已经过时

HTML 3.2——1996年1月14日,W3C推荐标准

html 5

HTML 4.0——1997年12月18日,W3C推荐标准

HTML 4.01(微小改进)——1999年12月24日,W3C推荐标准

HTML 5 的第一份正式草案已于2008年1月22日公布,仍继续完善

ISO/IEC 15445:2000(“ISO HTML”)——2000年5月15日发布,基于严格的HTML 4.01语法,是国际标准化组织和国际电工委员会的标准。

Wijmo是基于HTML5、jQuery、CSS3和SVG的一个控件包,能够满足构建当今Web系统的需求。基于Wijmo,您的系统运行将更加快速和流畅,外观也会更加引人入胜。Wijmo中所有新的控件[1]都是在符合最新的UI设计潮流的基础上,对新的以及改良后的主题进行封装。优美的、专业的控件外观会让您的应用程序引人注目。比如 ComponentOne Studio for ASP .NET Wijmo 控件包内置的6个主题,同时可以使用 jQuery UI项目提供的 30 多个主题,甚至可以使用 ThemeRoller 创建属于您自己的系统主题。

HTML没有1.0版本是因为当时有很多不同的版本。有些人认为蒂姆·伯纳斯-李的版本应该算初版,这个版本没有IMG元素。当时被称为HTML+的后续版的开发工作于1993年开始,最初是被设计成为“HTML的一个超集”。第一个正式规范为了和当时的各种HTML标准区分开来,使用了2.0作为其版本号。HTML+的发展继续下去,但是它从未成为标准。

HTML3.0规范是由当时刚成立的W3C于1995年3月提出,提供了很多新的特性,例如表格、文字绕排和复杂数学元素的显示。虽然它是被设计用来兼容2.0版本的,但是实现这个标准的工作在当时过于复杂,在草案于1995年9月过期时,标准开发也因为缺乏浏览器支持而中止了。3.1版从未被正式提出,而下一个被提出的版本是开发代号为Wilbur的HTML 3.2,去掉了大部分3.0中的新特性,但是加入了很多特定浏览器,例如Netscape和Mosaic的元素和属性。HTML对数学公式的支持最后成为另外一个标准MathML。

HTML 4.0同样也加入了很多特定浏览器的元素和属性,但是同时也开始“清理”这个标准,把一些元素和属性标记为过时,建议不再使用它们。HTML的未来和CSS结合会更好。

HTML 5草案的前身名为Web Applications 1.0。于2004年被WHATWG提出,于2007年被W3C接纳,并成立了新的HTML工作团队。在2008年1月22日,第一份正式草案发布。

标记语言

XHTML1.0——发布于2000年1月26日,是W3C推荐标准,后来经过修订于2002年8月1日重新发布。

XHTML 1.1,于2001年5月31日发布,W3C推荐标准。

XHTML 2.0,W3C工作草案。

XHTML 5,从XHTML 1.x的更新版,基于HTML 5草案。

XHTML 4.01 是常见的版本。