对于我的网站,我喜欢缓存一些数据(它可以达到1MB甚至更多)。我希望将json缓存到1)它已经过了一两天2)搜索失败并且我想更新它(但如果它的时间不到5分钟则不会。)
我该怎么做?我在考虑做$.get('/my.json?ts=TIME')
,但我不知道这是自己的文件还是覆盖/更新/my.json
答案 0 :(得分:0)
像TheJim01所说,你可以使用localstorage或indexeddb。我认为大多数浏览器都会在本地存储或indexeddb中允许1MB的数据,但我在那里没有太多人知识。快速谷歌搜索似乎支持这一点。
如果您想依赖浏览器缓存,我建议采用这样的方法:
Cache-Control: max-age=86400
。这将确保它不会缓存超过1天。$.get()
来电中使用它。客户端看起来像这样::
var randomKey = localStorage.getItem('cacheKey');
if (!randomKey || forceUpdateCache) {
randomKey = '' + Math.random();
localStorage.setItem('cacheKey', randomKey);
}
$.get('/my.json?v=' + randomKey);
希望有所帮助。
修改:如果您上次更新< 5分钟前,我忘了您不想清除缓存。为此,您还可以使用每次生成新随机密钥时设置的lastUpdated
localStorage密钥。