javascript - History.js - 有时仅在单击后退按钮时显示 ajax 内容

标签 javascript history.js

我使用 History.js,有时当我单击后退按钮时,我只从 ajax 调用中获取内容,而不是整个页面(包括 ajax 调用)。这会导致网站看起来很糟糕,因为没有加载任何脚本、CSS 或 html“容器”。

  1. 我浏览我的页面。
  2. 我在地址栏中输入了另一个网站。
  3. 我点击后退按钮 – 现在只显示之前 ajax 调用的 html,没有 css、js 或其他 html

为什么会发生这种情况以及如何解决它?

我的代码如下所示:

History.Adapter.bind(window, 'statechange', function(){
    var State = History.getState();
    $.ajax({
        url: State.url,
        type: 'get',
        beforeSend: function(xhr){ 
            xhr.setRequestHeader('X-PJAX', true); 
        },
        success: function(resp, status, xhr) { 
            $('#wrapper').html(resp); 
        }
    });
});

最佳答案

我通过禁用 ajax 响应的缓存来解决这个问题。

缓存控制:无缓存、无存储、必须重新验证

现在,当我单击后退按钮时,整个页面都会加载,而不仅仅是 ajax 响应。

关于javascript - History.js - 有时仅在单击后退按钮时显示 ajax 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19765159/

相关文章:

javascript - 在滚动上实现流体倾斜变换

javascript - 从选中的复选框获取数据

javascript - 如何通过ajax动态加载历史页面

javascript - History.js 和重新加载 Javascript

html - history.pushState 不触发 'popstate' 事件

javascript - 将枚举转换为值数组(将所有 JSON 值放入数组中)

javascript - 如何在命令行上使用 SpiderMonkey 读取(本地)文件的内容?

javascript - 有没有一种有效的方法来查找未使用哪些 JavaScript 包含?

jquery - 全屏部分的 History.js

reactjs - getUserConfirmation 提示带历史重定向的 React Router