【问题标题】:Client-side caching (with JavaScript)客户端缓存(使用 JavaScript)
【发布时间】:2013-03-05 16:07:50
【问题描述】:

我有一个 API,我在客户端通过 JS 进行查询,然后在页面上显示结果(再次通过 JS)。

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

我需要什么:

  1. 我需要以某种方式绕过 11 个查询限制,因为通常我需要在一个循环中进行大约 50 个调用。

  2. 我需要确保我不会在每次页面刷新时发送相同的 API 请求。

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

问题:

怎么样?由于 4KB 的大小限制,我认为 cookie 不是一个好的解决方案。我听说过 Google-gears(他们用于 Offline-Gmail。)但最近的搜索结果显示它不再存在。

【问题讨论】:

  • Google-Gears 已贬值,因为它的几乎所有功能都在现代浏览器中得到原生支持。查看 LocalStorage 和 SessionStorage API。我认为 LocalStorage 将满足您的需求。

标签: javascript performance api caching offline-caching


【解决方案1】:

您可以使用 localstorage,但前提是您需要在浏览器刷新之间保留缓存。如果不这样做,则可以使用内存,例如将其保存在数组或结果中。

【讨论】:

  • 我不仅需要在页面刷新之间存储数据,还需要存储一个月 :) localstorage 听起来很有趣,但所有浏览器都支持吗?
  • @rinchik 只有现代浏览器支持它,因为它是 html5 功能,另一种解决方案是将其保存在服务器上的文件中,并在脚本启动时加载该文件。
  • window.name 会是一个可行的替代方案吗?我不确定安全发展是否阻碍了它,但我认为它有 2MB 的存储限制。
  • @user1847757 嗯,很有趣:)
猜你喜欢
  • 1970-01-01
  • 2017-01-19
  • 2017-03-18
  • 2012-07-26
  • 2019-04-24
  • 1970-01-01
  • 2011-05-31
  • 2013-09-07
  • 2020-08-07
相关资源
最近更新 更多