Javascript 我应该把谷歌分析异步代码放在哪里

Javascript 我应该把谷歌分析异步代码放在哪里,javascript,performance,google-analytics,Javascript,Performance,Google Analytics,谷歌说 在此之前,异步代码段应显示在页面顶部 结束语 并给出: <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'te

谷歌说

在此之前,异步代码段应显示在页面顶部 结束语

并给出:

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXX-X']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>

var _gaq=_gaq | |[];
_gaq推送(['''u setAccount','UA-XXXXX-X']);
_gaq.push([''u trackPageview']);
(功能(){
var ga=document.createElement('script');ga.type='text/javascript';ga.async=true;
ga.src=('https:'==document.location.protocol?'https://ssl' : 'http://www“)+”.google analytics.com/ga.js';
var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(ga,s);
})();
我可以将其设置为外部.js文件,还是必须位于html页面本身中?

片段必须位于页面本身

如果代码段位于外部JS文件中,浏览器将缓存该文件,并且该代码段将仅生成从站点加载的第一个页面

如果需要,可以通过Javascript调用snippet API的方法还有很多,这些方法主要用于跟踪特殊事件,如按钮按下等。

代码片段必须位于页面本身

如果代码段位于外部JS文件中,浏览器将缓存该文件,并且该代码段将仅生成从站点加载的第一个页面


如果需要的话,可以通过Javascript调用snippet API的方法有很多-这些方法主要用于跟踪特殊事件,如按钮按下等。

可以以任何方式加载代码段。如果你想把它包含在一个外部文件中,那就把你自己删掉。谷歌建议将它放在
中,以最大限度地增加被跟踪的页面浏览量,但您也可以轻松地将其加载到
中,而不会遇到麻烦,也可以从外部JavaScript文件,甚至是动态注入的JavaScript文件中加载。需要做的就是执行代码段
ga.js
处理其余部分

即使你的浏览器缓存了代码本身,它仍然会执行
ga.js
(它本身可能会被缓存),但它发送给Google Analytics的数据被严重缓存破坏。即使在最严格的代理环境中,浏览器也无法缓存该请求

您的分析数据“发送”到Google analytics的方式是,
ga.js
,从环境、您的配置及其设置的cookies收集所有分析数据后,将所有这些值连接到动态图像请求的查询字符串上(通过JavaScript请求,但从未实际注入DOM)这些请求具有缓存破坏参数,以及通常对每个请求唯一的数据

此外,请求的图像通过设置以下标题明确指示浏览器避免缓存图像:

Cache-Control:private, no-cache, no-cache=Set-Cookie, proxy-revalidate
Expires:Wed, 19 Apr 2000 11:43:00 GMT
Pragma:no-cache

可以以任何方式加载代码段。如果你想把它包含在一个外部文件中,那就把你自己删掉。谷歌建议将它放在
中,以最大限度地增加被跟踪的页面浏览量,但您也可以轻松地将其加载到
中,而不会遇到麻烦,也可以从外部JavaScript文件,甚至是动态注入的JavaScript文件中加载。需要做的就是执行代码段
ga.js
处理其余部分

即使你的浏览器缓存了代码本身,它仍然会执行
ga.js
(它本身可能会被缓存),但它发送给Google Analytics的数据被严重缓存破坏。即使在最严格的代理环境中,浏览器也无法缓存该请求

您的分析数据“发送”到Google analytics的方式是,
ga.js
,从环境、您的配置及其设置的cookies收集所有分析数据后,将所有这些值连接到动态图像请求的查询字符串上(通过JavaScript请求,但从未实际注入DOM)这些请求具有缓存破坏参数,以及通常对每个请求唯一的数据

此外,请求的图像通过设置以下标题明确指示浏览器避免缓存图像:

Cache-Control:private, no-cache, no-cache=Set-Cookie, proxy-revalidate
Expires:Wed, 19 Apr 2000 11:43:00 GMT
Pragma:no-cache

谢谢Mikko。我刚刚开始使用Google Analytics,所以我非常感谢这个提示!亚尔奇是对的。我和旧的同步脚本混在一起。但是,我不能删除我自己的答案,因为它目前已被接受。谢谢Mikko。我刚刚开始使用Google Analytics,所以我非常感谢这个提示!亚尔奇是对的。我和旧的同步脚本混在一起。但是,我不能删除我自己的答案,因为它目前已被接受。