JavaScript:浏览器在打开新页面之前可以执行JS多长时间?

时间:2011-04-26 09:55:28

标签: javascript ajax

Page有几个链接。

我需要跟踪点击用户的链接。

也就是说,当用户点击发送到我的服务器的Ajax请求的链接时,我的服务器处理请求并返回一些数据。此外,这些数据在客户端根据需要进行处理并发送到服务器统计信息。

所有这些请求和数据处理都需要一定的时间。

我的问题很实用:浏览器可以执行所有这些操作多长时间?时间有限吗?

刚才我有以下选择:

单击链接时,使用js返回false。执行所有必要的功能,然后才能执行新窗口的打开。

因此,我避免了浏览器的期望问题。

1 个答案:

答案 0 :(得分:1)

如果要确保在AJAX请求完成之前未遵循链接,则应执行同步请求。例如:

link.onclick = function () {
    var xhr = new XMLHTTPRequest(); // and the cross-browser equivalents

    xhr.open('GET', 'yourscript.cgi?data1=foo&data2=bar', false);
    // false means do the request synchronously

    xhr.send(); // won't return till the request is complete

    // you can access the data as xhr.responseText or xhr.responseXML
};

与等待一段时间相比,这是一种更可靠(也可能更快)的方式来进行必要的通知。