猿问

有没有办法在有限的时间内在客户端缓存 JSON

想象一下这种情况 - 用户在 URL 上访问他们的个人资料页面,/user/username并且加载到此 URL 上的组件必须向 API 发出 1 个 GET 请求才能获取有关具有该用户名的用户的信息。到目前为止/user/username一切顺利,但是,如果用户访问另一个 URL,然后决定返回带有 URL 的个人资料页面,该组件会针对之前获得的相同信息发出新的 GET 请求,这会导致两个缺点 - 信息没有不会立即出现,因为组件必须等待 GET 请求,而我正在对 API 进行第二次调用。

这就是为什么我想知道是否可以以某种方式缓存该信息,以便当用户再次访问他的个人资料页面时,组件不必发出第二次 GET 请求。此外,此缓存信息应该能够在一个小时等特定时间后过期,以便它永远不会不准确。

这是可以实现的并且值得吗?


慕桂英3389331
浏览 170回答 2
2回答

呼啦一阵风

您可以使用浏览器本地存储或 WebSql 或IndexedDB在浏览器上存储数据,但要小心,它们有大小限制。您应该在服务器端而不是客户端缓存数据,这样您将有更多的权限来管理您的数据(缓存大小,刷新缓存,...)

慕哥6287543

我个人会首先尝试“Sudhakar RS”提到的 http 缓存解决方案,但接下来我会尝试会话存储。还有一个 vue-sessionstorage 插件。当然,您的数据将对该会话有效。如果您的会话比您提到的小时长,您将必须手动处理它,作为您使用时间戳保存的数据的一部分。我认为所有会话存储数据的大小限制为 5MB 。如果您需要更多,那么我会选择“Hung Nguyen”的建议。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答