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上的得分仍然是负的。
发布于 2021-10-24 03:31:57
您应该使用Web Worker来加载facebook_comments插件。
网络工作者是网页内容在后台线程中运行脚本的一种简单方法。
下面是一个例子:
facebook_comments.js
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加载它:
new Worker('facebook_comments.js');这应该会在后台线程中加载脚本,从而产生优化的TBT。
https://stackoverflow.com/questions/67437587
复制相似问题