我知道 PWA 最具标志性的功能是
- Service Worker:使用户可以通过缓存资源离线使用应用
- 添加到主屏幕:通过此功能,用户可以在移动设备主屏幕上添加应用程序的快捷方式,以获得类似于与原生应用程序交互的体验(但在我看来,仍然有很大的不同)<
- 等等
但是,通过使用当时的 HTML5 技术,我可以像大约 6/7 年前那样做到所有这些,我知道 Service Worker 最近才出现,但也有“HTML5 App Cache,以及本地存储” 、索引数据库和文件 API 规范。”可以做类似的事情。
有谁可以解释一下 PWA 和 HTML5 网络应用程序之间的区别吗?或者它们只是相同的术语?或者类似的概念但不同的实现?或者 PWA 是 HTML5 Web 应用程序的(下一代/扩展)?
我可能对 PWA 有一些误解,因为我是这个术语的新手,谢谢。
最佳答案
简单来说,PWA 是具有 3 个附加功能的普通网站。
- 响应式设计 - 网站应在所有设备上都能正常显示
- manifest.json - 网站必须将其自身的一般描述存储在manifest.json
- 缓存 - 网站必须离线工作
我相信 1 和 2 很容易。 3 确实是 PWA 的全部内容。那么问题来了:我们如何提供线下支持?
第一个问题是我们如何在没有互联网连接的情况下获取初始的.html
.css
和.js
文件?答案是:我们应该使用 Service Worker 或 App Cache。但 App Cache 有很多问题,可能会被弃用,而 Service Worker 正在开发中,并且每个月都会变得更好。您可以阅读更多关于它们的区别here .
第二个问题是如何在没有互联网连接的情况下获取服务器数据?我们应该将最重要的数据存储在某个地方。但是,当我们从缓存中获取 .js
文件后,我们就可以访问本地存储、索引数据库等。因此我们可以存储重要的信息当我们在线时,数据存储在任何此存储中,当我们离线时,可以从这些存储中取回数据。这完全取决于你如何处理。
我认为 PWA 和 HTML5 webapp 还没有明确且严格的防御(至少目前如此)。所以你可以假设它是相同的,但今天 PWA 是更常见的词。
关于html - PWA 与 html5 web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52179091/