为什么空服务人员会大大降低页面加载速度?

时间:2020-01-29 16:04:47

标签: performance web caching performance-testing service-worker

一个非常简单的设置。

  1. 像这样在index.html中的<script>标记内导入服务工作者文件:
if ('serviceWorker' in navigator) {
    window.addEventListener('load', function() {
        navigator.serviceWorker.register('/app/static/js/service-worker.js', { scope: '/' });
    });
}
  1. 服务人员本身为空(1行):
console.log('Successfully Installed Service Worker.');
  1. 运行页面加载速度测试后,我得到有趣的结果:
                        DOM Interactive    DOM Complete       Load Event End     Number of page loads
no-service-worker       0.232              2.443              2.464              30
with-service-worker     0.343              2.484              2.502              30

有什么作用?空服务人员如何通过120毫秒以上来减慢页面加载速度?

1 个答案:

答案 0 :(得分:1)

某些浏览器将通过检测服务工作者中是否没有fetch处理程序来优化性能,并且不会在服务工作者启动时阻止导航。 (Chrome对此非常激进。)其他浏览器则没有。您没有提到要在哪个浏览器上进行测试,但是对于有些影响,我并不感到特别惊讶。

有关该主题in this talk的更多背景。