如何解决历史记录Api
|$(\'#Head a\').click(function()
{
alert(\"\");
var link = $(this).attr(\'href\');
$.get(link,function(data) {
$(\'#NavDetailContent\').html(data);
history.pushState(null,null,link);
e.preventDefault();
});
return false;
});
$(window).bind(\"popstate\",function() {
$.get(document.location,function(data) {
$(\'#NavDetailContent\').html(data);
alert(\"\");
});
});
我正在试用历史API,但发现了以下内容。
当我从ajax链接移至非ajax链接时,我仅单击返回从ajax获取的内容,而不显示整个页面。那为什么是因为历史API或其他原因(这就是显示的全部内容)
当我刷新页面时,会触发popstste事件。这次,如果我在非ajax页面上,它将触发请求并将内容加载到div中。我已经在服务器端小心了,即使当它是ajax请求时也显示ajax和non ajax的不同页面,但是它显示了非ajax页面,仅在这种情况下所有其他时间都可以正常工作
解决方法
在该项目https://github.com/defunkt/jquery-pjax上,使用了特殊的HTTP标头来防止这种情况。
它们使用相同的方式生成内容AJAX和NONAJAX,但是如果您使用ajax,则在服务器端不会生成内容范围。
因此,当您返回时,无需使用特殊的HTTP标头就可以将链接发送到服务器,因此页面已被完整地生成,并包含了所有计数字段。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。