Backbone.js 缓存 fetch 调用的正确方法是什么?

发布于 2024-12-20 03:03:15 字数 65 浏览 0 评论 0原文

我想我可能会开始在 Backbone 中进行一些频繁的重叠“获取”调用。缓存这些调用并重新使用它们的最佳方法是什么?

I think I might start making some frequent overlapping "fetch" calls in Backbone. What would be the best way to cache these calls and re-use them?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

满地尘埃落定 2024-12-27 03:03:15

实现这一目标有很多可能性。一种是实现您自己的 Backbone.sync 方法版本。然后您可以在那里缓存您的结果(例如,作为 url - 结果对)。调用 fetch 时,您会查找 url,然后返回缓存的结果或从服务器获取结果。

更复杂的方法是使用某种代理集合。这是一个全局可用的集合,也是唯一可以进行服务器端获取的集合。所有其他集合都有一个自定义获取方法实现,通过代理获取其模型。
代理缓存服务器端结果并创建模型实例(并保留它们)。因此,您可以保持对模型实例的控制,并防止您的应用程序中出现多个具有相同 id 的模型。

There are a lot of possibilities to achieve this. One would be to implement you own version of the Backbone.sync method. There you can then cache your results (eg. as url - result pairs). When fetch is called you lookup the url and either return the cached result or fetch the result from the server.

A more sophisticated approach would be to use a sort of proxy collection. This is a globally available collection and the only one that can make serverside fetches. All other collection get a custom fetch method implementation fetching their models via the proxy.
The proxy caches serverside result and also creates the model instances (and keeps them). So you stay in controll of model instances and prevent you from having multiple models with the same id in your application.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文