jQuery Ajax如何知道哪个响应数据与哪个成功回调?

我有一个带有几个jQuery ajax调用的网页,这些调用同时针对.NET Web方法异步激活。 这些Web方法返回数据,以便由每个.ajax调用的成功回调处理。 我的问题可能是低水平的。 jQuery / Javascript如何知道哪些数据返回哪个.ajax调用?我使用网络嗅探器查看了返回数据包,但我看不到任何可用于将其链接回原始呼叫的标识。我的猜测它与jqXHR对象有关。如果它在响应数据包中,我在嗅探器中看不到它。 任何技术解释都可能有所帮助。 加成: 我问这个是因为我将在服务器端使用异步方法。 .ajax最初调用的方法不是返回数据的方法。一个不同的线程正在做这项工作。     
已邀请:
浏览器可以从Web服务器请求多个图像并知道将每个图像放在页面上的相同方式。它是HTTP协议的一部分。浏览器发送请求,响应在同一TCP套接字上发送。如果浏览器同时等待多个对象,则会打开多个TCP套接字。 在您的数据包嗅探器中,仔细查看TCP端口号,特别是响应端口(非80端口)。 您的浏览器和Web服务器/框架将做正确的事情。在服务器端,确保将响应发送到相应的请求,它将返回到jquery中的正确位置,无论收到订单还是处理时间。如果你有多个线程在服务器上交换数据,那么你的生活就会比你需要的更难,所以我认为你有充分的理由知道你在做什么。     
这是通过一个名为闭包的概念。简而言之,AJAX调用总是引用您的成功回调,例如:
function ajax(params, callback){
    // fire off AJAX call
    // on response:
    callback(data);
}
如果多次调用ajax,则
callback
是每个变量的新变量。我在几年前写了一篇关于这个概念的文章可能有所帮助:http://www.htmlgoodies.com/primers/jsp/article.php/3606701/Javascript-Basics-Part-9.htm     
我相信这篇文章可能包含您正在寻找的一些信息。 HTTP请求和响应通过称为交换的过程配对。 HTTP请求+响应的名称 在请求之后,XMLHttpRequests将HTTP状态代码(例如200,304,500等)和readyState返回给浏览器。 jQuery ajax使用XMLHttpRequest来确定哪些代码成功以及哪些代码是失败的。 https://developer.mozilla.org/En/Using_XMLHttpRequest http://api.jquery.com/jQuery.ajax/     
当进行AJAX调用时,jQuery创建对底层
XMLHTTPRequest
对象的内部引用,并将事件处理程序绑定到该对象。     
你有没有使用过没有库的XMLHttpRequest对象?如果你这样做,理解起来非常简单。我建议你去编写10行代码,看看它是如何工作的。 您为要对服务器发出的每个请求创建XMLHttPRequest对象的实例。您为它分配了一个onreadystatechange事件处理程序,该处理程序将被调用4次。当readystate命中4时,它就完成了。在JQuery完成它的情况下,它会调用你的回调函数。     

要回复问题请先登录注册