服务工作者不被所有浏览器支持;caniuse估计它们可以为大约85%的用户工作。
如果我构建了一个PWA,它是否需要使用服务工作者?
服务工作者不被所有浏览器支持;caniuse估计它们可以为大约85%的用户工作。
如果我构建了一个PWA,它是否需要使用服务工作者?
根据我的经验,使用服务工作者并非必须要实现离线功能的渐进式 Web 应用程序。
只要你的 PWA 页面被正确标记为可缓存的,你就可以完全离线运行 PWA,并且如果页面的生命周期在浏览器缓存寿命内,则不需要连接到服务器。Chrome 的“创建快捷方式”功能是由 Webmanifest 驱动的,而不是因为它使用了服务工作者。如果一个页面有一个清单,你可以为其创建一个桌面快捷方式。
此外,你可以对一个明确没有被缓存的 URL 进行 AJAX 调用,以确定你是否处于离线或在线状态,并通过使用 location.reload()
根据“更新”URL 告诉你是否需要更新页面。
更新:Chrome 和 MS Edge 要求服务工作者控制页面,以便在地址栏中提供“安装”按钮。
在这里还可以看到 浏览器栏中的渐进式 Web 应用程序未显示安装按钮
所需的服务工作者可以非常基本,并利用浏览器内置缓存:无需使用服务工作器缓存。
为了更好地了解实际情况,我创建了一个小型 GitHub 项目,在https://github.com/leopatras/simple_offline_pwa上可见。
该页面可以在https://www.generomobile.de/gmi/simple_offline_pwa/test.html上直接检查。
fetch
处理程序的服务工作者。
https://web.dev/install-criteria/#criteria
关于Chrome: