跟随链接之前的JavaScript跟踪点击事件

时间:2018-07-05 15:28:31

标签: javascript ajax xmlhttprequest

我有一个Javascript片段,我的客户将该片段放在他们的网站上。为了跟踪点击,我创建了一个XMLHttpRequest,等待200状态,然后传播点击。

以下是点击事件的相关代码:

function pingServer(done) {
    var url = "http://www.example.com/api/events/?eventID=" + eventID;
    var invocation = new XMLHttpRequest();
    invocation.open('GET', url, true);
    invocation.withCredentials = true;
    invocation.onreadystatechange = function() {
        if (invocation.readyState == invocation.LOADING && invocation.status == 200) {
            (typeof done === 'function' && done());
        }
    };
    invocation.send(); 
}

// get the href
var href = e.target.href;

// ping then redirect
pingServer(function () { window.location.href = href; }); 

它工作正常,我在服务器上收到ping命令。问题在于,等待XMLHttpRequest 200代码的延迟对于最终用户而言很明显。直到等待之后,浏览器的微调器才开始旋转。因此,对于用户而言,它的UX效果不佳,看起来点击没有任何作用。

在注册点击事件的同时还可以立即处理链接重定向吗?

0 个答案:

没有答案