首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >History.js与状态

History.js与状态
EN

Stack Overflow用户
提问于 2012-10-11 22:11:46
回答 1查看 1.2K关注 0票数 3

有谁能给我解释一下情况吗?

例如,使用history.js插件。

代码语言:javascript
复制
History.pushState({state:1}, "State 1", "?state=1"); // logs {state:1}, "State 1", "?state=1"

我理解最后一个参数,因为它是被推入地址栏的URL,但是我不知道前两个参数。理解这些可以帮助我将history.js实现到我的站点中,因为我在后退/前进导航方面遇到了困难。

莫兹拉德夫网站上写着:

状态对象-状态对象是与pushState()创建的新历史条目相关联的JavaScript对象。每当用户导航到新状态时,就会触发popstate事件,并且事件的state属性包含历史条目的state对象的副本。状态对象可以是任何可以序列化的对象。因为Firefox将状态对象保存到用户的磁盘,以便在用户重新启动浏览器后恢复这些对象,因此我们对状态对象的序列化表示形式施加了640 k字符的大小限制。如果将序列化表示形式大于此的状态对象传递给pushState(),则该方法将引发异常。如果您需要更多的空间,则鼓励您使用sessionStorage和/或localStorage。

状态仅仅是使用AJAX加载的代码的副本吗?或者它只是该代码的表示,所以可以调用它?

任何对此的洞察力都是非常感谢的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-11 22:17:21

state对象是任何Javascript对象--它可以是单个变量,也可以是函数和值的庞大哈希映射。它是你想要用来表示你的应用程序在那个时候的‘状态’的任何数据。像这样的事情很常见:

代码语言:javascript
复制
var viewModel = {
    title: 'FAQs',
    url: 'faqs.html',
    favouriteColor: 'green',
    stepsCompleted: 4
};

history.pushState(viewModel, viewModel.title, viewModel.url);

这基本上是创建一个对象,它包含“记住”和稍后恢复状态所需的任何东西--例如,如果用户遵循向导式的逐步表单或类似的方式。

第二个参数title暂时在很大程度上被浏览器忽略了,但可能是为了用--比如向前/向后导航,其中页面标题可能需要更新。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12849362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档