服务工作者和页面性能

Service workers and page performance

我被困在一个我真的不想参加的婚礼招待会上,而且我正在开车,所以很明显我正在阅读有关服务人员的信息。我在 phone 上,所以不能玩任何东西,但在想它们是否是提高页面性能的可行选择?

图像是我网站上最大的杀手,我有一半认为我们可以使用服务工作者来缓存它们以帮助减少页面加载时间。据我所知,浏览器仍然发出 http 请求,只是响应来自 SW 缓存,而不是文件位置。我在这里错过了什么吗?因此,这样做有什么实际好处吗?

您的考虑无效。

Service worker 被设计成像代理服务器一样工作,可以特别处理一些 off-page 操作,如离线能力、推送通知、后台同步等。所以在你的情况下,你不会获得任何性能优势与传统浏览器的缓存方法相比,使用 Service Worker 缓存图像。

虽然常规的 http 缓存与 ServiceWorker 缓存有很多重叠,但前者不能很好处理的一件事是许多 client-side [=25] 中使用的动态生成 html =] 应用程序。 即使应用程序的所有资源都缓存命中,仍然存在延迟,因为 javascript 在应用程序可用之前编译和执行。

Addy Osmani demonstrated how ServiceWorker can be used to cache the Shell of an app. 在客户端修改 DOM 时,它会在缓存中更新。下次请求 URL 时,ServiceWorker 会回复 html,表示在应用程序启动之前就可以使用了。

关于 lie-fi 的另一个优点:网络似乎可用,但没有足够的数据包通过。 ServiceWorkers 可以承受 near-imperceptible 超时,因为它们可以立即从缓存 等待响应加载(如果有的话)。