Javascript 如何确保在调用Google Analytics';s函数?
在读了一篇博客文章后,我想到了添加安全代码的想法,以确保在调用Google Analytics的功能之前,Google Analytics对象已完全加载 Typicle Google Analytics代码类似于:Javascript 如何确保在调用Google Analytics';s函数?,javascript,google-analytics,load,ready,Javascript,Google Analytics,Load,Ready,在读了一篇博客文章后,我想到了添加安全代码的想法,以确保在调用Google Analytics的功能之前,Google Analytics对象已完全加载 Typicle Google Analytics代码类似于: var pageTracker = _gat._getTracker("X-UAXXXXX"); pageTracker._trackPageview(); $(document).ready(function() { var pageTracker = _gat._get
var pageTracker = _gat._getTracker("X-UAXXXXX");
pageTracker._trackPageview();
$(document).ready(function() {
var pageTracker = _gat._getTracker("X-UAXXXXX");
pageTracker._trackPageview();
}
及
我想到了两个选项来双重确保在使用之前加载_gat-object:
1) 使用JQuery.ready调用_get-functions。比如:
var pageTracker = _gat._getTracker("X-UAXXXXX");
pageTracker._trackPageview();
$(document).ready(function() {
var pageTracker = _gat._getTracker("X-UAXXXXX");
pageTracker._trackPageview();
}
或
2) 使用JavaScript超时
function checkGat() {
if( gat_is_ready ) {
var pageTracker = _gat._getTracker("X-UAXXXXX");
pageTracker._trackPageview();
} else {
setTimeout('checkGat()', 1000);
}
}
checkGat()
更好的解决方案是什么?为什么?还有其他的评论吗?这些都是多余的。用新的;这是为你做的
<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);
})();
使用这段代码,您可以在页面中尽早地将跟踪信息存储在JavaScript数组(称为_gaq)中。然后,它只在ga.js加载并准备就绪后执行对Google Analytics的调用。换句话说,它可以为您完成所有这些,而不需要编写复杂的循环,而且您永远不会遇到导致JavaScript错误的竞争条件
这具有非阻塞的额外好处,因此速度稍快