在pjax中使用popstate时,我希望再次从服务器加载内容,而不是被浏览器的缓存内容替换。如果正在应用缓存的内容,则缓存内容中的undefined
根本不起作用。那么,当我们只是点击浏览器的后退/前进按钮时,有没有办法强制对服务器进行正常的PJAX调用而不是使用缓存的数据?
请帮忙。 感谢。
答案 0 :(得分:2)
请仔细注意此链接中{strong> jquery.pjax.js 文件中的 476到491 行:jQuery PJAX by Chris Wanstrath (defunkt)。 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)
你很高兴去!很奇怪,没有人给我这个解决方案。但是,我终于找到了自己的解决方案,我认为这会对很多人有所帮助。
谢谢,无论如何。
答案 1 :(得分:0)
无需修改来源。您可以将pjax配置为再次从服务器加载,而不是通过将其~ $ awk '{ print $2,$6 }' FPAT="[^,:]+" OFS="," pet_owners.txt
Jane,cat
John,dog
设置为0来使用缓存
maxCacheLength