我正在谷歌分析中使用自定义变量,并且不确定为什么以下实际上有效。为什么Google的跟踪代码会先被执行,特别是因为它位于页面的底部?
这两个脚本都是自动执行的函数,那么javascript如何确定首先执行哪一个?
// top of the page
<script type="text/javascript">
$(function ()
{
_gaq.push(['_setCustomVar', 1, 'Account', 'PartTime', 1]);
});
</script>
// bottom of the page
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxxxxxx']);
_gaq.push(['_setDomainName', '.xxxxxxxx.com']);
_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>
答案 0 :(得分:5)
第一个执行首先执行,不执行。
它包含对$
函数的调用,并且有一个参数:匿名函数。
$
是一个命名非常糟糕的函数。这个名字本身毫无意义,它被六个不同的图书馆采用,可以做六个不同的事情。
在jQuery中,如果将函数传递给$
,则在触发ready
事件时(但正在解析HTML文档的末尾)运行该函数。这可能就是这里发生的事情。