我们有一个公共网站。它包含Facebook Pixel脚本。 但是,在我们地区,有时进入Facebook的速度急剧下降,而其余Internet则运行良好。发生这种情况时,主页加载非常缓慢。这是位于页面顶部的脚本:
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '123456');
fbq('track', 'PageView');
</script>
据我所知,该脚本应该异步加载,但似乎不是,因为在facebook像素完成其工作之前,页面无法完全呈现。我什至在我的nginx的pagespeed模块中设置了pagespeed EnableFilters defer_javascript
,但没有帮助。
我该怎么办?我在做什么错了?
答案 0 :(得分:1)
您可以尝试将脚本标签本身添加到延迟脚本中
<script defer>
您可以尝试async
,但我确定它不适用于嵌入式脚本。如果您要拉入Facebook javascript文件,那么也可以使其异步。
<script async>
这样,您就不需要pagespeed来进行延迟