Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery History.js与美国_Jquery_Ajax_Html_Browser History_History.js - Fatal编程技术网

Jquery History.js与美国

Jquery History.js与美国,jquery,ajax,html,browser-history,history.js,Jquery,Ajax,Html,Browser History,History.js,有人能给我解释一下美国的情况吗 例如,使用插件 我理解最后一个参数,因为它是推送到地址栏的URL,但我不知道前两个参数。了解这些将有助于我在我的站点中实现history.js,因为我在向后/向前导航方面遇到了问题 网站上说: 状态对象-状态对象是一个JavaScript对象,与pushState()创建的新历史记录条目关联。每当用户导航到新状态时,都会触发popstate事件,并且该事件的state属性包含历史记录条目的state对象的副本。 状态对象可以是任何可以序列化的对象。由于Firefo

有人能给我解释一下美国的情况吗

例如,使用插件

我理解最后一个参数,因为它是推送到地址栏的URL,但我不知道前两个参数。了解这些将有助于我在我的站点中实现history.js,因为我在向后/向前导航方面遇到了问题

网站上说:

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

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


对此有任何见解都将不胜感激

状态对象是任何Javascript对象—它可以是单个变量,也可以是函数和值的巨大哈希映射。它是任何你想用来表示你的应用在那个时间点的“状态”的数据。类似这样的情况很常见:

var viewModel = {
    title: 'FAQs',
    url: 'faqs.html',
    favouriteColor: 'green',
    stepsCompleted: 4
};

history.pushState(viewModel, viewModel.title, viewModel.url);
这基本上就是创建一个对象,其中包含“记住”并在以后恢复状态所需的任何内容—例如,如果用户正在遵循向导式的分步形式或类似的方式


第二个参数,
title
,目前浏览器基本上忽略了它,但它可能用于向前/向后导航等需要更新页面标题的用例。

因此,示例viewModel在调用pushState时仅表示屏幕上的html?如果我再次调用该状态,使用history.js它将加载它的代表性html?没错。不,它不会加载HTML,您必须自己加载,但理论上,您的viewmodel中有足够的信息来加载HTML。
var viewModel = {
    title: 'FAQs',
    url: 'faqs.html',
    favouriteColor: 'green',
    stepsCompleted: 4
};

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