1.html5 history api适用场景,个人理解最大的用处是配合ajax使用,使ajax拥有回退、前进的用户体验。

2.代码(dive into html5中的一个小例子)

1)fer.html

<!DOCTYPE html>
<html>
<head>
<title>history api test</title> </head>
<body>
<aside id="gallery">
<p class="photonav">
<a id="photonext" href="casey.html">Next &gt;</a>
<a id="photoprev" href="adagio.html">&lt;Previous</a>
</p>
<figure id="photo">
<img id="photoimg" src="gallery/1.jpg" alt="fer" width="500" height="375">
<figcaption>Fer.1972</figcaption>
</figure>
</aside>
<script>
function setupHistoryClicks(){
addClicker(document.getElementById("photonext"));
addClicker(document.getElementById("photoprev")); }
function addClicker(link){
link.addEventListener("click",function(e){
swapPhoto(link.href);
history.pushState(null,null,link.href);
e.preventDefault();
},false);
}
function swapPhoto(href){
var req=new XMLHttpRequest();
req.open("GET",href.split("/").pop(),false); req.send(null);
if(req.status==200){
document.getElementById("gallery").innerHTML=req.responseText;
setupHistoryClicks();
return true;
}
return false;
}
setupHistoryClicks();
window.addEventListener("popstate",function(e){
swapPhoto(location.pathname);
})
</script>
</body> </html>

2)casey.html

<aside id="gallery">
<p class="photonav">
<a id="photonext" href="adagio.html">Next &gt;</a>
<a id="photoprev" href="fer.html">&lt;Previous</a>
</p>
<figure id="photo">
<img id="photoimg" src="gallery/casey.jpg" alt="casey" width="500" height="375">
<figcaption>casey.1972</figcaption>
</figure>
</aside>

3) adagio.html

<aside id="gallery">
<p class="photonav">
<a id="photonext" href="fer.html">Next &gt;</a>
<a id="photoprev" href="casey.html">&lt;Previous</a>
</p>
<figure id="photo">
<img id="photoimg" src="gallery/1.jpg" alt="fer" width="500" height="375">
<figcaption>adagio.1972</figcaption>
</figure>
</aside>

html5 history api的更多相关文章

  1. HTML5 history API实践

    一.history API知识点总结 在HTML4中,我们已经可以使用window.history对象来控制历史记录的跳转,可以使用的方法包括: history.forward();//在历史记录中前 ...

  2. 转: html5 history api详解~很好的文章

    从Ajax翻页的问题说起 请想象你正在看一个视频下面的评论,在翻到十几页的时候,你发现一个写得稍长,但非常有趣的评论.正当你想要停下滚轮细看的时候,手残按到了F5.然后,页面刷新了,评论又回到了第一页 ...

  3. HTML5 History API & URL 重定向

    HTML5 History API & URL 重定向 disabled server url redirect https://developer.mozilla.org/en-US/doc ...

  4. HTML5 History API让ajax能回退到上一页

    HTML5 History API提供了一种功能,能让开发人员在不刷新整个页面的情况下修改站点的URL.这个功能很有用,例如通过一段JavaScript代码局部加载页面的内容,你希望通过改变当前页面的 ...

  5. window.history的跳转实质-HTML5 history API 解析

    在上一浏览器跳转行为的测试中,我们看到了通过不同的方法操作浏览器跳转时,它的刷新表现有所不同,在这一文章中,将看看,为何会产生这样的不同?其背后的实质是什么?浏览器的访问历史记录到底是如何运作的呢? ...

  6. HTML5 history API,创造更好的浏览体验

    HTML5 history API有什么用呢? 从Ajax翻页的问题说起 请想象你正在看一个视频下面的评论,在翻到十几页的时候,你发现一个写得稍长,但非常有趣的评论.正当你想要停下滚轮细看的时候,手残 ...

  7. 转:HTML5 History API 详解

    从Ajax翻页的问题说起 请想象你正在看一个视频下面的评论,在翻到十几页的时候,你发现一个写得稍长,但非常有趣的评论.正当你想要停下滚轮细看的时候,手残按到了F5.然后,页面刷新了,评论又回到了第一页 ...

  8. 一篇文章图文并茂地带你轻松实践 HTML5 history api

    HTML5 history api 前言 由于笔者在网络上没有找到比较好的关于 history api 的实践案例,有的案例过于杂乱,没有重点,有些案例只是告诉读者 api 是什么,却没告诉怎么用,本 ...

  9. HTML5 History API 实现无刷新跳转

     在HTML5中, 1. 新增了通过JS在浏览器历史记录中添加项目的功能. 2. 在不刷新页面的前提下显示改变浏览器地址栏中的URL. 3. 添加了当用户单击浏览器的后退按钮时触发的事件. 通过以上三 ...

随机推荐

  1. How to Remove Table Partitioning in SQL Server

    In this article we will see how we can remove partitions from a table in a database in SQL server. I ...

  2. 关于eclipse保存代码很慢,提示the user operation is waiting的问题

    关于eclipse保存代码很慢,提示the user operation is waiting的问题 首先 去掉 project - build Automaticlly 然后 project-> ...

  3. Python内存数据库/引擎

    1 初探 在平时的开发工作中,我们可能会有这样的需求:我们希望有一个内存数据库或者数据引擎,用比较Pythonic的方式进行数据库的操作(比如说插入和查询). 举个具体的例子,分别向数据库db中插入两 ...

  4. 阿里云 crp kelude远程部署tomcat8 重启tomcat脚本

    部署包路径:/usr/local/tomcat/webapps 应用服务启动脚本路径:/usr/local/tomcat/bin/restart.sh 部署授权帐号:tomcat restart.sh ...

  5. .NET微信开发通过Access Token和OpenID获取用户信息

    本文介绍如何获得微信公众平台关注用户的基本信息,包括昵称.头像.性别.国家.省份.城市.语言. 本文的方法将囊括订阅号和服务号以及自定义菜单各种场景,无论是否有高级接口权限,都有办法来获得用户基本信息 ...

  6. DELPHI 各版本下载

    各版本中国下载地址: http://pan.baidu.com/s/1eQ1QGy2 http://pan.baidu.com/s/1qWK3mw8 (有新版本发布时,会同步最新官网地址) ───── ...

  7. Python入门2

    字符串操作 字符串是语言中使用最多的,下面我们来看看python为字符串提供哪些方法: 1.upper().lower().title() 这3个方法都是返回一个新的字符串.重要性:** name = ...

  8. java读取文件内容

    获取文件内容 picurl = "http://www.baidu.com/data.txt"; URL urlfile = new URL(picurl); BufferedRe ...

  9. 黄聪:远程序桌面登录的.NET(C#)开发

    MSTSCLib.dll和MsTscAxWrapper.dll下载:LibDll.rar 远程序桌面登录的.NET开发,可以使用MSTSCLib.dll和MsTscAxWrapper.dll两个转换过 ...

  10. shared_ptr 线程安全

    Then what's really happening is TWO different sections of memory are being allocated. It's done at o ...