Maximiliano Firtman 回顾了今年的 PWA,包括试图了解它们的普及程度。
截至 2020 年底,大约1% 的网站包含 Service Worker,2.2% 的网站具有可安装的 Web 应用清单文件。请记住,某些平台(例如 iOS 上的 Safari 或 Android 上的 Chrome)不需要 Service Worker 即可在安装后获得独立体验。我们可以假设 2.2% 的网站是可安装的,而 1% 可能会满足 Android 上的 PWA 标准,其中 71% 提供了一些离线体验。
这些数据来自 HTTP Archive,该档案查看了 750 万个网站。因此,1% 似乎是一个很小的数字,但大量网站使用了 PWA 技术,并且同比增长了 170%。不过,这些只是最低要求。我相信,完全拥抱 PWA(例如真正的离线使用)只占其中的一小部分。Maximiliano 提供了更多详细的数据,因此,如果您对细微差别感兴趣,请务必深入阅读文章。
从轶事来看,我想说 PWA 去年已不再是人们普遍讨论的话题。我认为没有人完全反对构成 PWA 的技术,但他们也没有拥抱这些技术。我的猜测?每个人都害怕 Service Worker。我也害怕 Service Worker。它们会做一些可怕的事情,例如积极地保留缓存。我认为,整个开发团队都需要真正了解它们,并将它们融入到他们的工作流程和构建过程中,才能使它们发挥作用。总的来说,我们还没有达到那个阶段。
虽然关于 Apple 的观点是可以接受的,但我认为针对 Mozilla 的观点有点偏颇:他们在拟议 API 上的意见是公开的,并且他们不愿意支持的许多功能存在损害隐私的风险。
让我谈谈我感兴趣的一个:本地字体访问。太棒了!从 Flash 迁移的网站可以使用本地字体而不会出现问题(例如,某个使用 libass 进行字幕渲染并依赖于本地字体的网站,因此许多字幕在从 Flash 迁移时都坏了)。
另一方面,该提案试图解释它不会损害隐私,但似乎省略了一些细节:它允许访问字体数据,获取这些数据,进行哈希处理,然后您就可以获得一个在浏览器数据清理之间持续存在的超级 Cookie。规范说浏览器不需要返回真实数据,但这种“解决方案”会大大减少此 API 的用例。我知道有画布指纹识别,但通过允许直接访问字体 Blob,它将变得更加强大。哦,有权限提示吗?还记得允许通知提示带来的混乱吗?
改进 Web 应用的新想法很棒,但大部分想法是由一个在我看来不太重视隐私的群体提出的,这会损害网络。我喜欢使用本地字体的想法,这将有助于解决迁移问题,但以超级 Cookie 为代价?不。在强制将其应用于 Apple 或 Mozilla 之前,请重新考虑此提案。还有其他带有隐藏警告的提案吗?我认为是的。
我希望什么?我希望人们能够为了社区的利益而共同努力,而不是像往常一样“让我们采用 Cloudflare 令牌的想法,并将其制作为 Web API,以便我们能够改进我们的广告平台,并使其对发布者看起来更安全”。即使加密看起来很安全并保护隐私,在我看来,推理也很奇怪。许多人说 Apple 为了保护其商店而损害了网络,但我想说 Google 通过使用基于 Chromium 的浏览器来制造新的“此网站在 Internet Explorer 中效果最佳”而损害了网络。
缺乏浏览器支持无济于事:https://www.fastcompany.com/90597411/mozilla-firefox-no-ssb-pwa-support
就我而言,我很惊讶这种方法/技术没有更快地进入市场。
它使网站速度更快,但我不知道它有这么多缺点。
好文章!
很棒的文章。感谢分享。
在您的时事通讯中,您说“在浏览器中安装网站并不明显”,并且这是一个“巨大的缺失部分”。一旦人们进行了几次操作,我认为这将不再是一个障碍。Google 制作的指导用户如何安装 PWA 的图形清晰简洁。人们天生不知道如何使用触摸屏,一旦有人看到如何使用触摸屏……他们就会上手。
Service Worker 不直观,但 Workbox 使它们更容易处理,并且一旦设置好,它们就很少需要调整。
不幸的是,我对 Apple 的欺凌战术并不感到惊讶,我不希望它发生改变,但 Mozilla 领导层在过去一年左右的表现令人震惊。这样一个人才济济的组织却被一群驴子领导着。
Fugu 项目看起来很棒……许多有趣、有用且强大的功能都交到了 Web 开发人员手中!未来一片光明。
很棒的文章。Service Worker 可以通过预取下一页链接的数据来加快网站速度。我们认为它们很容易配置,但实际上却很麻烦,尤其是在确保缓存与边缘和服务器缓存以及所有版本和变体同步时。结果是值得的,浏览以下几个网站:https://www.katespade.com(React)、https://universalstandard.com(Nuxt)和 https://www.sharperimage.com(Next)。
您可以在此处了解这些网站的设置方式:https://developer.moovweb.com/guides/prefetching