首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webvitals主线程阻塞时间

Webvitals主线程阻塞时间
EN

Stack Overflow用户
提问于 2021-05-07 23:17:32
回答 1查看 56关注 0票数 1
代码语言:javascript
复制
function init() {  
      (function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.async = true;
      js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.9&appId=1111";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'))
        
}
window.onload = init;

尽管我在加载时调用了facebook comments plugin,但作为Main-Thread Blocking Time的一部分,我在web-vitals上的得分仍然是负的。

EN

回答 1

Stack Overflow用户

发布于 2021-10-24 03:31:57

您应该使用Web Worker来加载facebook_comments插件。

网络工作者是网页内容在后台线程中运行脚本的一种简单方法。

下面是一个例子:

facebook_comments.js

代码语言:javascript
复制
function init() {  
      (function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.async = true;
      js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.9&appId=1111";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'))    
}

然后通过web worker加载它:

代码语言:javascript
复制
new Worker('facebook_comments.js');

这应该会在后台线程中加载脚本,从而产生优化的TBT。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67437587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档