在浏览器

时间:2017-01-27 13:14:49

标签: javascript jquery ajax browser-cache

我有一些页面,其中包括表格,其中包含删除,每行更新等选项,之后我选择了像更新这样的选项使用Ajax 调用。

我的问题是,当我转到另一个页面然后返回时,使用浏览器上的后退按钮,DOM上的那些更改不存在。似乎浏览器只缓存了主题页面加载。

我在堆栈上遇到了问题,这似乎是关于我正在寻找的东西: Keep changes on DOM when pressing back/forward buttons

有人回答说:

“如果您真的在改变页面,那么即使从缓存中工作,浏览器也会显示从服务器检索到的页面,而不是之后修改的页面。”

如果您希望以当前的方式保持页面A / Page B结构,而不是交换到更多SPA方法,则可以将ajax结果存储在sessionStorage中并在页面加载时检查它。如果在那里,重新申请;如果没有,请通过ajax请求并应用它(并保存)。这比通过网络重新请求它要快得多。“

这真的是解决方案吗? 如果是的话,我该如何实现类似的东西?

修改

举一个具体的例子,我使用了这样的代码:

    GetTargetUpdated : function (options, targetToUpdate) {
    $.ajax(options).done(function (result) {
        var target = $(targetToUpdate);
        var $newHtml = $(result);
        target.replaceWith($newHtml);
        $newHtml.effect("highlight");
    });
},

将更新特定的DOM元素。我希望这些更改能够覆盖浏览器中页面的缓存

编辑:似乎我在Chrome上遇到此问题但在Firefox上没有。

如何解决Chrome中的缓存问题(我发现问题的浏览器)? 是否有一些标头可以在Html中使用,一些jquery解决方案或其他一些方法来保存缓存页面中的DOM更改?

由于

0 个答案:

没有答案