Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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_History.js - Fatal编程技术网

Jquery 如何使用history.js?

Jquery 如何使用history.js?,jquery,ajax,history.js,Jquery,Ajax,History.js,在我的站点中,左侧有一个导航栏。当我单击链接时,它们会更改页面上的#container div,但不会通过ajax更改其他内容。我想设置后退和前进按钮,使#container div在状态中来回移动。我读到history.js是最好的选择,我浏览了html5历史api,但我不知道如何解决我的问题。另外,我该如何实现刷新按钮呢?听起来您要查找的内容类似于 需要明确的是,HTML5历史API(History.js实现/填充)并不直接维护应用程序的状态。相反,它提供了一种机制,用于将窗口URL中的更改

在我的站点中,左侧有一个导航栏。当我单击链接时,它们会更改页面上的#container div,但不会通过ajax更改其他内容。我想设置后退和前进按钮,使#container div在状态中来回移动。我读到history.js是最好的选择,我浏览了html5历史api,但我不知道如何解决我的问题。另外,我该如何实现刷新按钮呢?

听起来您要查找的内容类似于

需要明确的是,HTML5历史API(History.js实现/填充)并不直接维护应用程序的状态。相反,它提供了一种机制,用于将窗口URL中的更改映射到负责实际呈现更改的函数。提供了一些关于如何实现这一点的见解:

History.Adapter.bind(window, 'statechange', function() {
    var State = History.getState(); 
    History.log(State.data, State.title, State.url);
});
如果您不希望记录状态,而是希望更改容器的内容(不使用PJAX或类似的库),则可以在每次调用
pushState
时存储
#container
的内容,并调整处理程序函数以执行以下操作:

History.Adapter.bind(window, 'statechange', function() {
    var State = History.getState(); 
    $('#container').empty().append(State.data.content);
});

History.pushState({content:"Hello, world!"}, "State 1", "?state=1");

当然,您需要对其进行修改,以反映您的具体情况。

好的,我检查了pjax的东西,它似乎起了作用。虽然我不知道如何让加载gif工作。这是我拥有的代码行,当单击链接时执行pjax然后链接
  • main.html实际上是一个文件,它在#容器中展开。它可以工作,我可以来回切换,但它看起来非常容易出错,我想知道如何实现加载gif。另外,由于main.html是它正在调用的实际文件,我无法刷新页面,或者它只显示文件输出。我怎样才能解决这个问题?