首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pwa错误地考虑api缓存而不是db?

Pwa错误地考虑api缓存而不是db?
EN

Stack Overflow用户
提问于 2018-07-14 05:50:46
回答 1查看 1.1K关注 0票数 1

我正在构建一个特定的图书阅读器,像应用程序。

主页调用api/booksList并接收包含每个图书信息的json数组,如下所示:

代码语言:javascript
复制
[ {  id: server_db_id,  title: "title test",  sum: 10 , date: ... }
]

在请求后缓存它,所以我不会将图书列表保存到indexedDB、localStorage或其他存储中。如果我需要一本特定的书,我只需要再次调用api图书列表并过滤它。这设计不好吗?(书籍将超过200项)

当用户打开书时,它调用/api/book/book_id并缓存它,打开的图书响应是书籍行的json列表,例如:

代码语言:javascript
复制
[
 {  
  id: ...
  content: "This is line...lore ipsum..."
  ....
 }
]

我将api响应放入vue数据变量中,组件被呈现为correclty。

我不使用任何一种处理程序来保持离线的手。要检测用户是否已经打开了这本书,我只需调用api,检查错误是否发生或响应体是否有内容。

这是一个错误的、糟糕的还是愚蠢的决定?这会不会达到配额限制api或其他类型的限制?普华的“神”会举起手指对我说:“哇!”(一开始我不使用indexedDB,因为它需要一些模型处理,如果可能的话,我想让事情变得更简单)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-14 14:47:50

我自己只是在研究这个问题,并得出结论,目前我要采用这种方法,根据它们的匹配路线,我使用cache作为资产,js, css, html等。

然后,当涉及到数据(例如json请求等)时,最好将它们存储在indexedDB (或等效的)中,这实际上不需要这样的模型或模式。

参见杰克阿奇博尔德的索引数据库-承诺库https://github.com/jakearchibald/idb,它真的很简单,让你的头脑。

虽然杰克和艾迪都说这不是一个事实上的规则,所以你可以最终决定什么对你最好。

为了更好的澄清,请阅读这个。

它帮助我更好地决定如何向前迈进。

建议也

这里的导游非常善于带你了解你所需要的一切。

祝你好运

随机思想(编辑)

但是,有一件事让我对此感到怀疑,这是基于我所看到的一些例子和指南,即数据存储是以一种更特殊的方式处理的。例如,如果PWA调用了一个API,我遇到了两种方法,您可以在应用程序中或在服务工作者中管理缓存的数据,例如,如果应用程序中获取JSON的API调用失败,它可以恢复到在indexedDB中获取数据,希望这是应用程序第一次调用API时预缓存的数据。

或者您也可以使用self.addEventListener('fetch', (event) => { ad-hoc stuff here }) --这是您可以匹配资产或数据请求的地方,并且可以用缓存或indexedDB响应劫持响应。这样可以防止应用程序中需要处理脱机数据。

第一种方法让我感到不安,所以我将在服务工作者中采用addEventListener方法,因为这就是它的目的,而且我的应用程序也不必担心这一点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51335678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档