历史记录.js - 有时仅在单击后退按钮时显示 ajax 内容

History.js - sometimes only shows ajax content when clicking back button

本文关键字:按钮 显示 内容 ajax 单击 js 记录 历史      更新时间:2023-09-26

我使用历史记录.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 响应上禁用缓存来修复它。

Cache-Control: no-cache, no-store, must-revalidate

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