如何保存/缓存dom,以便在按下后退按钮时页面按原样加载?

时间:2016-10-31 15:30:01

标签: javascript ajax dom web-deployment bfcache

我使用ajax调用将模型添加到我的js app模型集合中。当我点击一个模型并转到下一页时,我希望当我点击后退按钮时,我加载的所有模型仍然存在。这样做的最佳方法是什么,以便它适用于所有浏览器?这是针对移动网络的。我无法找到一个直接的答案,我如何使用bfcache,或js历史,还是有另一种更好的方法?

1 个答案:

答案 0 :(得分:0)

只有当本地存储上不存在

时,才可以将它们存储在本地存储和ajax中

因此,不要使用常规$ .ajax,而是将其用于要缓存的ajax:

function storageBasedAjax(url,cb){

    if (localStorage.getItem("myAxaxCache_"+url)){
      cb(localStorage.getItem("myAxaxCache_"+url));
      return;
    }       

   $.ajax({url: url, success: function(result){
     localStorage.setItem("myAxaxCache_"+url,result);
        cb(result);
   }});
}

请记住你不想过载,所以如果你有一个参数改变每个电话的网址,不要使用它,否则你将超载本地存储