Javascript 如何保证请求完成,即使发生导航

Javascript 如何保证请求完成,即使发生导航,javascript,tracking,Javascript,Tracking,我隐约记得曾经读过一篇关于一个实验性可用的javascript API的文章,该API用于发出请求,即使导航发生,请求也会继续发生。有人知道这个API的名字吗 我在谷歌上查不到这个名字 这解决了一个常见的问题,那就是试图跟踪出站点击,而今天我们通常需要做如下事情: $('a').click(function(ev) { ev.preventDefault(); url = ev.currentTarget.href; doSomeTracking(function() { w

我隐约记得曾经读过一篇关于一个实验性可用的javascript API的文章,该API用于发出请求,即使导航发生,请求也会继续发生。有人知道这个API的名字吗

我在谷歌上查不到这个名字

这解决了一个常见的问题,那就是试图跟踪出站点击,而今天我们通常需要做如下事情:

$('a').click(function(ev) {
  ev.preventDefault();
  url = ev.currentTarget.href;
  doSomeTracking(function() {
    window.open(url);
  });
});
但首选的语义是:

$('a').click(function(ev) {
  doSomeTrackingEvenThoughWereGonnaBeNavigating();
});

你能不能先跟踪,返回一个承诺,在承诺解决后,导航到下一页,如
DoTracking()。然后(导航)
如果你发现了这只神奇的独角兽,请让所有人都知道。你的解决方案很好。我通常会让服务器立即响应doSomeTracking,然后再执行这项工作。因此,用户单击>发送到服务器>服务器表示同意>页面导航发生>服务器完成工作。