document.write注入javascript的时间

时间:2015-01-29 15:01:11

标签: javascript asynchronous google-analytics timing

看起来这段代码导致了计时问题。执行此脚本后,ga.js会在什么时候运行?如果ga.js以这种方式注入,我们怎么能确定它已被执行? (另一个组成部分取决于它)

 <script type="text/javascript">
                var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
                document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
    </script>

1 个答案:

答案 0 :(得分:2)

我知道这并没有严格回答你关于document.write的问题,但它应该可以解决你的问题。

ga.js旨在异步使用。你应该可以这样做:

var _gaq = _gaq || [];
_gaq.push(function(){
    // Use _gat here freely
});

加载ga.js后,将处理推入_gaq的函数。

此外,您似乎正在使用此代码的相当旧版本。较新的版本不使用document.write。

(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);
  })();

如果您决定更新分析跟踪代码,我建议您直接转到Universal Analytics,它使用另一个名为analytics.js的文件。