android - 渐进式 Web 应用的局限性:将原生应用转变为渐进式 Web 应用
问题描述
我在一家公司工作,我的任务是检查是否可以将我们正在使用的当前本机应用程序转换为处理 Web 应用程序。
开发 PWA 的主要原因是它具有离线功能,并且可以在每台设备(智能手机、平板电脑、台式机)上访问。
原生应用:
该应用程序是关于向客户提供新闻、文章和不同产品的。每个客户(用户)都有自己的个人资料,并且只允许查看某些产品。每个产品至少有一张图片和至少同样多的文件供下载。
问题:
因为有很多产品、图片和文档,我不确定 PWA 到什么时候才能让用户看到和下载产品的图片和文档。
在最好的情况下,每个产品都将离线显示。由于产品和图像数量众多,这可能是不可能的。
离线可用的实际内容量是多少?
什么时候将原生应用程序转换为 pwa 会出现问题?
解决方案
看起来您的主要瓶颈将是离线存储。限制包括两件事:您可以存储的数据量和持久性。
关于金额,目前限制如下:
- Chrome <6% 的可用空间
- Firefox <10% 的可用空间
- Safari <50MB
- IE10 <250MB
- 边缘取决于卷大小
https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/offline-for-pwa (请同时查看以下部分:当前和未来的离线存储工作)
当涉及到图像时,这实际上并不多。但是,您可以离线存储它们的较低分辨率并仅在有连接时使用原始分辨率。
关于持久性,不同平台的处理方式不一样,但普遍比较模糊。虽然 chrome 您同时可以请求持久存储(只有用户可以清除存储,但系统不能清除),但在 Safari 中,系统可以在一段时间后擦除您的存储。 https://developers.google.com/web/updates/2016/06/persistent-storage
推荐阅读
- spring-boot - 使用 Spring Data MongoDB 进行 MongoDB 项目和组操作
- reactjs - 在 React onclick 中添加列和行
- python - __add__ 运算符重载无法按预期工作
- java - 使用tomcat启动spring boot应用程序时出现java.lang.VerifyError
- c# - 如何在c#窗口窗体的面板上存储然后显示以前绘制的形状
- reactjs - 将 ReactJs 和 VueJS 项目发布到 Ubuntu 服务器
- android - 如何在 AlertDialog 中使用 PDFView 打开 PDF 文档?
- r - osmar (R) 中的 get_osm 函数给出 SSL 错误
- ajax - Gravity Forms:从 JSON 数据中动态添加字段
- r - shinydashboard:如果侧边栏项目展开,则切换选项卡