保存加载了Ajax的插件以缓存

时间:2017-01-14 10:13:16

标签: javascript jquery html ajax caching

因此,我使用此代码更改了我的网站内容并为每个"页面加载特定插件":

$.ajax({
  url: urlPath, 
  type: 'GET',
  success: loadContent //content and plugins are loaded through this
});

现在我注意到它并没有从loadContent缓存加载的插件,每次一次又一次地下载它们,在页面之前使用 ajax请求简单的http请求强0.5s到1.5s (显然在插件已经从第一次加载缓存之后)。 使用cache: true/false并没有任何区别。

我已经读过这样做无法完成,因为javascript无法写入磁盘,但仍然可能错过了某些内容并且有一种方法可以缓存插件并避免浪费额外的时间每次加载?

1 个答案:

答案 0 :(得分:2)

您可以使用缓存的替代方法localStorage。每个网站都有权在用户磁盘上存储多达5 MB的数据。

所以用它来保存数据:

//browser support localStorage
if((typeof(Storage) !== "undefined"){
    localStorage.setItem("mydataname", data);
}

要检索或下载新的:

//browser support localStorage
if((typeof(Storage) !== "undefined"){
    var data = localStorage.getItem("mydataname");
    if(data){ //data does exist in localStorage
        // Use data, no need to download a new version.
    }
    else{ // data doesn't exist, not saved yet or have been removed
        // download new version of data and save it using the above code.
    }
}
else{
    // browser doesn't support localStorage redownload data.
}

有关localStorage here的更多信息。