Nic*_*ick 16 ajax jquery pushstate
我遇到以下情况的问题.
我已经使用pushState为各种事情增加了一个网站,结果是一个令人震惊的响应式网络应用程序,但这个问题阻止我使用它.
以下是代码示例:
$('a').live('click', function(){
history.pushState({}, '', this.href);
popstate(this.href);
return false;
});
popstate = function(url){
$('#content').load(url);
}
window.onpopstate = function(event){
popstate(window.location.href);
event.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)
笔记:
Che*_*rik 19
似乎有些浏览器经常混淆部分加载的ajax和整个页面,用它的布局装饰.那是因为他们都有相同的URL.因此,当用户单击后退按钮时,浏览器将不会加载URL,只会显示之前通过ajax下载的部分内容.
为了避免这种情况并维护两个单独的内部缓存(一个用于部分页面,一个用于整个页面),您应该在通过ajax调用时在URL中添加GET参数.在你的代码中这样:
popstate = function(url){
$('#content').load(url+'?_ajax=1');
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
5563 次 |
| 最近记录: |