我正在使用多个客户端跟踪系统跟踪我网站上的某些事件。它们基本上都以相同的方式工作:将跟踪方法绑定到某个事件(例如点击) - > HTTP请求被发送到跟踪服务器,其中包含有关事件的信息作为参数。这是一个例子:
<a href="http://example.com" onclick="trackEvent();">
我的目标是保证在遵循href
之前已完成HTTP请求。挑战在于这些跟踪系统没有可用的回调。因此,我认为解决方案是以某种方式监视正在发生的请求,并确保在相关请求完成之前不重定向页面。
所以我的问题是:
是否有某种全局变量包含有关所有正在发生的请求的信息,这些信息可以帮助我实现我想要的目标?
有没有更好的方法来完成我想要做的事情?
提前致谢
答案 0 :(得分:0)
通常使用setTimeout来处理这个问题,这是我以前用过的一个例子:
<a href="http://www.example.com/foo" onclick="return track(this);">Example Foo</a>
<script type="text/javascript>
var track = function(item){
if(item.href.indexOf(location.host) === -1){
var hostname = item.href.split('/')[2].split('.').slice(-2).join('.'),
params = ['_trackEvent', 'Outbound', hostname, item.href],
_gaq = [];
_gaq.push(params);
setTimeout(function(){
location.href = item.href;
}, 100);
return false;
}
return true;
}
</script>