Javascript 如何使pjax:popstate像一个简单的pjax调用一样工作

Javascript 如何使pjax:popstate像一个简单的pjax调用一样工作,javascript,jquery,caching,pjax,popstate,Javascript,Jquery,Caching,Pjax,Popstate,在pjax中使用popstate时,我希望再次从服务器加载内容,而不是由浏览器的缓存内容替换。如果正在应用缓存内容,则缓存内容中的根本不起作用。那么,当我们简单地点击浏览器的后退/前进按钮时,有没有办法强制对服务器进行普通的PJAX调用而不是使用缓存的数据呢 请帮忙。 谢谢。请仔细注意文件jquery.pjax.js中的第476到491行:。if下的代码实际上调用了缓存内容,而else部分下的代码是我们只需要的 if (contents) { container.trigger('p

在pjax中使用popstate时,我希望再次从服务器加载内容,而不是由浏览器的缓存内容替换。如果正在应用缓存内容,则缓存内容中的
根本不起作用。那么,当我们简单地点击浏览器的后退/前进按钮时,有没有办法强制对服务器进行普通的PJAX调用而不是使用缓存的数据呢

请帮忙。
谢谢。

请仔细注意文件jquery.pjax.js中的第476到491行:。
if
下的代码实际上调用了缓存内容,而
else
部分下的代码是我们只需要的

  if (contents) {
    container.trigger('pjax:start', [null, options])

    pjax.state = state
    if (state.title) document.title = state.title
    var beforeReplaceEvent = $.Event('pjax:beforeReplace', {
      state: state,
      previousState: previousState                                                     
    })                                                                                 
    container.trigger(beforeReplaceEvent, [contents, options])                         
    container.html(contents)

    container.trigger('pjax:end', [null, options])
  } else {
      pjax(options)
  }
所以,现在你知道我们要做什么了!是的,只需删除除此行以外的所有内容:

    pjax(options)
你可以走了!奇怪的是,没有人给我这个解决方案。然而,我终于找到了自己的解决方案,我认为这将帮助很多人


无论如何,谢谢。

无需修改源代码。您可以通过将pjax的
maxCacheLength
设置为0,将其配置为再次从服务器加载,而不是使用缓存

$.pjax.defaults.maxCacheLength=0