vue.js - 如何处理 Vue 渐进式 Web 应用程序
问题描述
我有一个基本的 CRUD REST API 和一个基本的 Vue 前端。假设我有一个返回所有用户的 API 端点和一个显示那些获取的用户列表的/users
前端页面 url 。/users
我想通过 CLI 设置为我的 Vue 应用程序提供离线功能并添加 PWA 支持。
据我了解 PWA,他们的服务工作者是客户端和服务器之间的一个实例。客户端向 service worker 发送一个请求,这个请求决定是进行新的 API 调用还是返回之前缓存的数据。
所以我的用户页面可以在mounted
钩子中获取用户列表。如果没有 PWA 支持,我还可以将用户全局存储到 Vuex 商店,以便也从其他页面访问它们。
我想到了多个问题:
- 何时加载缓存数据以及何时发出新的 API 请求?互联网连接是唯一标准吗?(如此处所列https://developers.google.com/web/ilt/pwa/introduction-to-progressive-web-app-architectures#caching_strategies_supported_by_sw-toolbox)
- 当实时数据发生变化并且排队的请求将响应多个错误时,如何处理缓存数据。
- 缓存存储受浏览器和设备操作系统的限制。假设iOS将存储限制为50MB,如何处理?一些带有一些图像的文档很容易通过限制。那么我是否必须决定要缓存什么,不缓存什么?
我看过一个运行时缓存示例
{ urlpattern:'api url',处理程序:'例如 networkfirst',选项 }
但是我必须在服务工作者配置中硬编码这样的缓存吗?许多 API 端点可能会变得非常混乱。
如果有人能解释 PWA 如何工作以及如何处理它们,那就太棒了。Vue应用需要做什么,如何存储大量数据以及如何处理错误情况。
解决方案
推荐阅读
- jquery - 如何通过使用jquery单击复选框来对项目列表进行排序?
- python - 让 Flask-Login 与 unittest 一起工作
- java - 根据 Big-O 表示法的增长顺序
- swift - 使用 DispatchQueue.asyncAfter 延迟调用
- c# - 如何在 Xamarin Forms 中的按钮上创建网格
- python - 仅在带有熊猫的组的最后一行中添加组的最小值
- html - 停止 div 与容器重叠
- reactjs - 我在 app.js 中编译的松露合约的导入错误
- python - pip 的问题,SSLException
- php - PHP 数组(只有一个结果)