html5的history新特性

html5的history新特性 history.pushState和history.replaceState

history.pushState(state, title, url)

将当前URL和history.state加入到history中,并用新的state和URL替换当前。不会造成页面刷新。

state:对象 –state对象是一个JavaScript对象,它关系到由pushState()方法创建出来的新的history实体。用以存储关于你所要插入到历史 记录的条目的相关信息。State对象可以是任何Json字符串。因为firefox会使用用户的硬盘来存取state对象,这个对象的最大存储空间为640k。如果大于这个数 值,则pushState()方法会抛出一个异常。如果确实需要更多的空间来存储,请使用本地存储。

title:firefox现在回忽略这个参数,虽然它可能将来会被使用上。而现在最安全的使用方式是传一个空字符串,以防止将来的修改。或者可以传一个简短的标题来表示state

url:要跳转到的URL地址,不能跨域。

history.replaceState(state, title, url)

浏览器执行以下包含以下代码的html文件会崩溃,不要尝试

<html>

<body>

<script>

var total="";

for (var i=0;i<1000000;i++)

{

    total= total+i.toString();

    history.pushState(0,0,total);

}

</script>

</body>

</html>