javascript - 当与 facebook 的连接速度变慢时,网站加载速度很慢
问题描述
我们有一个公共网站。它包含 Facebook Pixel 脚本。然而,在我们地区,有时访问 Facebook 的速度会急剧下降,而互联网的其他部分则运行良好。当它发生时,主页加载非常缓慢。这是位于页面头部的脚本:
<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 像素完成其工作。我什至pagespeed EnableFilters defer_javascript
在我的 nginx 的 pagespeed 模块中设置了,但它没有帮助。
我能做些什么?我究竟做错了什么?
解决方案
您可以尝试将脚本标签本身添加到 deferscript
<script defer>
您可以尝试async
,但我确定它不适用于内联脚本。如果你正在拉入 facebook javascript 文件,那么你也可以异步它。
<script async>
这样,您将不需要 pagespeed 来执行延迟
推荐阅读
- angular - Angular url 更改不会导致组件被重新创建
- phaser-framework - 在画布上正确定位背景图像移相器
- angular - 在 chart.js 中暂停水平滚动以获取实时数据
- performance - 添加更多内存片会增加整体内存带宽吗?
- installation - 如何使用 pendrive 实时运行任何操作系统并制作便携式操作系统
- ansible - 如何在 OpenShift Ansible 项目中限制对节点的供应
- sql - 是否可以用 WITH CLAUSE 替换 SUB QUERIES?
- android - 如何将 Glide 与 GridView 一起使用?(安卓/科特林)
- angularjs - 使用 routeParams 观看路线不起作用
- sql - 如何在 GROUP BY c 之后计数(DISTINCT a,b)