html - PWA 与 html5 web 应用程序?

标签 html web-applications progressive-web-apps

我知道 PWA 最具标志性的功能是

  • Service Worker:使用户可以通过缓存资源离线使用应用
  • 添加到主屏幕:通过此功能,用户可以在移动设备主屏幕上添加应用程序的快捷方式,以获得类似于与原生应用程序交互的体验(但在我看来,仍然有很大的不同)<
  • 等等

但是,通过使用当时的 HTML5 技术,我可以像大约 6/7 年前那样做到所有这些,我知道 Service Worker 最近才出现,但也有“HTML5 App Cache,以及本地存储” 、索引数据库和文件 API 规范。”可以做类似的事情。

有谁可以解释一下 PWA 和 HTML5 网络应用程序之间的区别吗?或者它们只是相同的术语?或者类似的概念但不同的实现?或者 PWA 是 HTML5 Web 应用程序的(下一代/扩展)?

我可能对 PWA 有一些误解,因为我是这个术语的新手,谢谢。

最佳答案

简单来说,PWA 是具有 3 个附加功能的普通网站。

  1. 响应式设计 - 网站应在所有设备上都能正常显示
  2. manifest.json - 网站必须将其自身的一般描述存储在manifest.json
  3. 缓存 - 网站必须离线工作

我相信 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/

相关文章:

reactjs - 应用程序未运行时 PWA 推送通知不显示

javascript - 如何从 Service Worker 中删除多个打开的缓存

jquery - 隐藏的 td 不接受表中的宽度

javascript - 客户端 JavaScript 中多个 Firebase 连接的资源限制

html - 更改列表中点内的行高(不在点之间)

iphone - 如果可能的话,如何从网站添加指向 iPhone native 应用程序的链接

python - 找不到文件错误,但文件存在

django - 当 Django 提供 manifest.json 时,Chrome 显示 'No manifest detected'

javascript - ajax post请求上的未定义索引

javascript - 在渲染页面之前加载 Div (React)