gpt4 book ai didi

javascript - 使用 Google 的 Platform.js 插件

转载 作者:行者123 更新时间:2023-12-03 15:30:09 25 4
gpt4 key购买 nike

我的网站似乎很慢。出于这个原因,我决定深入研究提高性能的方法。在服务器端,一切看起来都不错。但是在客户端,有很多 JavaScript 会减慢速度。当我查看负载堆栈时,我注意到了两个罪魁祸首。

两个最严重的违规者是 https://apis.google.com/js/platform.jshttps://www.google-analytics.com/analytics.js .我将前者用于 +1 按钮,后者用于分析目的。截至目前,我正在像这样加载它们:

<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

ga('create', '[MyId]', 'auto');
ga('send', 'pageview');
</script>

<script src="https://apis.google.com/js/platform.js" async defer></script>

我的印象是 platform.js 包括 Google Plus 和 Google Analytics。所以,我想我可以使用这样的东西浓缩成一个外部 JS 库:
(function(w,d,s,g,js,fs){
g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(f){this.q.push(f);}};
js=d.createElement(s);fs=d.getElementsByTagName(s)[0];
js.src='https://apis.google.com/js/platform.js';
fs.parentNode.insertBefore(js,fs);
js.onload=function(){
g.load('analytics');
};
}(window,document,'script'));

这至少会加载 Google Plus 插件。但是,它实际上不再记录访问。看起来 g.load 带来了分析。但是,我的 ID 没有分配到任何地方。同时,我看不到在platform.js版本中分配它的位置。

任何人都可以提供任何见解吗?如果可能的话,我希望能够少加载一个外部资源。

谢谢你。

最佳答案

I was under the impression that platform.js included Google Plus and Google Analytics.



不,这不是真的。 platform.js允许您加载 Google Analytics API 客户端库(用于以编程方式报告您的 GA 数据),但这与 analytics.js 不同。 (用于向 GA 发送跟踪数据)。

根据您显示的代码,这两个库都是异步加载的,因此它们不应干扰您网站的加载时间。当 window.load事件触发,但这并不意味着您的网站加载速度较慢,因为它不应该影响应用程序关键资源的加载。

如果你真的想加载这些库而不影响任何加载指标,你可以推迟加载它们直到 window.load 之后。事件触发,但老实说,如果您有其他代码等待 window.load,我只会这样做触发初始化。

关于javascript - 使用 Google 的 Platform.js 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40765313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com