如何使pjax:postate像一个简单的pjax调用一样工作
How to make pjax:popstate work like a simple PJAX call
在pjax中使用popstate时,我希望再次从服务器加载内容,而不是用浏览器的缓存内容替换。如果正在应用缓存内容,则缓存内容中的<script>
根本不起作用。那么,当我们只需点击浏览器的"后退/前进"按钮时,是否有任何方法可以强制对服务器进行正常的PJAX调用,而不是使用缓存的数据?
请帮忙。谢谢
请仔细注意文件jquery.pjax.js中的第476到491行:Chris Wanstrath(defunkt)的jquery pjax。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;
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- 在pjax完成其工作时加载脚本
- PJAX与PHP-不工作
- 如何使pjax:postate像一个简单的pjax调用一样工作