使用$.ajax({..})
我从服务器接收 XML 文件的内容。所以我不必每次页面加载时都请求这个文件,如果可能的话,我想在本地缓存这个内容,将它保存在磁盘上的文件中。但是以这样的方式缓存它,即使在第二天重新启动后它也可以使用。XML 文件内容每天更新,因此无需如此频繁地重新发送文件。
是否可以?如果是这样,我该如何实现?你能提供一个链接或一些示例代码吗?我一直在寻找我能理解的好东西,但我没有成功。
使用$.ajax({..})
我从服务器接收 XML 文件的内容。所以我不必每次页面加载时都请求这个文件,如果可能的话,我想在本地缓存这个内容,将它保存在磁盘上的文件中。但是以这样的方式缓存它,即使在第二天重新启动后它也可以使用。XML 文件内容每天更新,因此无需如此频繁地重新发送文件。
是否可以?如果是这样,我该如何实现?你能提供一个链接或一些示例代码吗?我一直在寻找我能理解的好东西,但我没有成功。
默认情况下,浏览器通常会根据服务器设置文件头的方式为您缓存响应。如果您需要除此之外的持久性,您可以使用本地存储和可能的 cookie 来支持旧版支持(尽管在存储方面存在非常实际的大小限制)。
使用本地存储很简单。您还可以使用过期时间戳让客户端知道何时更新缓存。
一个准系统示例:
var mydata = { foo: 'bar' };
var cache = {
data: mydata,
expires: new Date().getTime()
}
sessionStorage.setItem("cache", JSON.stringify(cache));
并获取数据:
var cache = JSON.parse( sessionStorage.getItem("cache") );
if ( cache.expires + day < new Date().getTime() ) {
// get a fresh copy
} else {
var mydata = cache.data;
}
如果您更熟悉更高级别的 API,则可以使用许多本地缓存抽象。