事件发生时会调用几个不同的函数。为简单起见,假设我发送了两个不同的分析跟踪请求。它们每个都有一个回调函数,用于在收到响应后重定向访问者。
function analytics(event,callback){
// send analytics event;
if (callback) callback();
}
function analytics2(event,callback){
// send analytics2 event;
if (callback) callback();
}
回调函数通常是:
If: tracking response is received from remote server
Then: redirect to URL
$("a").click(function(){
analytics(
'clicked on ' + $(this).attr('id'),
function(){
location.assign($(this).attr('href'));
}
);
analytics2(
'clicked on ' + $(this).attr('id'),
function(){
location.assign($(this).attr('href'));
}
);
});
问题:将这些回调排队的最佳方法是什么,所以我在重定向之前等待所有回调函数准备好?正如现在设置的那样,每当第一个回调运行时,访问者都会被重定向——不知道服务器是否收到了该analytics2()
函数。
我见过一些网站使用他们自己的队列系统,我只是不知道这是如何实现的。
有什么建议/想法吗?
我应该设置analytics2()
为回调anlaytics()
吗?但是,如果我最终不跑步,analytics()
那么analytics2()
就永远不会跑步。理想情况下,我希望采用更有条理的方法。