我正在使用HTML5历史记录API和ajax来尽可能加载部分页面内容。我的大部分工作正常,但是,有些情况需要重新加载整页,这就是事情似乎破裂的地方。
我使用pushState
添加到历史记录中:
history.pushState({ data: response }, '', href);
我在popstate
事件中有一个事件监听器,在导航时显示正确的内容:
window.addEventListener("popstate", function(e)
{
if (e.state) {
$('#content').html(e.state.data);
}
});`
一切正常,直到我导航到需要整页重新加载(不通过ajax加载)然后使用浏览器后退按钮的URL。然后仅使用先前的ajax响应替换整个页面。
我可以做些什么来在这样的实例中正确呈现页面吗?我意识到我可以在每个ajax请求上返回整个html页面,但是当大多数内容不会发生变化时,这似乎很浪费。