客户端缓存(使用JavaScript)

客户端缓存(使用JavaScript),javascript,performance,api,caching,offline-caching,Javascript,Performance,Api,Caching,Offline Caching,我有一个API,我在客户端通过JS查询,然后在页面上显示结果(同样是通过JS) 我每秒最多有5个查询。在现实生活中,一个循环最多可以发送11个API调用 我需要什么: 我需要绕过11个查询的限制,因为通常我需要在一个循环中进行大约50个调用 我需要确保我没有在每次页面刷新时发送相同的API请求 显而易见的解决方案是缓存。为了满足速度要求,理想情况下,我希望在客户端缓存数据 问题: 怎么做?我不认为cookies是一个好的解决方案,因为它有4KB的大小限制。我听说过Google gears(他们用

我有一个API,我在客户端通过JS查询,然后在页面上显示结果(同样是通过JS)

我每秒最多有5个查询。在现实生活中,一个循环最多可以发送11个API调用

我需要什么:

  • 我需要绕过11个查询的限制,因为通常我需要在一个循环中进行大约50个调用

  • 我需要确保我没有在每次页面刷新时发送相同的API请求

  • 显而易见的解决方案是缓存。为了满足速度要求,理想情况下,我希望在客户端缓存数据

    问题:


    怎么做?我不认为cookies是一个好的解决方案,因为它有4KB的大小限制。我听说过Google gears(他们用于离线Gmail),但最近的搜索结果显示它已经不存在了。

    你可以使用localstorage,但前提是你需要在浏览器刷新之间保留缓存。如果你不这样做,那么你可以使用内存,比如数组或结果。

    我不仅需要在页面刷新之间存储数据,还需要存储一个月:)localstorage听起来很有趣,但所有浏览器都支持吗?@rinchik only modern browser支持它,因为它是html5功能,另一种解决方案是将其保存在服务器上的一个文件中,并在脚本启动时加载该文件。window.name是否是可行的替代方案?我不确定安全性的发展是否阻碍了它,但我认为它有2MB的存储限制。@user1847757 hmm有趣的是:)Google Gears被贬低了,因为它几乎所有的功能都在现代浏览器中本机支持。请看一下LocalStorage和SessionStorage API。我认为本地存储将满足您的需要。