在浏览器开发工具中检查 ajax 调用是同步的还是异步的

Posted

技术标签:

【中文标题】在浏览器开发工具中检查 ajax 调用是同步的还是异步的【英文标题】:To check if ajax call is synchronous or asynchronous in Browser Dev Tools 【发布时间】:2015-08-19 02:05:30 【问题描述】:

有没有办法在 Chrome 开发者工具或 Firebug 等浏览器开发工具中确认特定的 ajax 请求是异步的还是同步的。

对于ajax请求的HTTP Request Header没有指明是同步还是异步。

X-Requested-With:XMLHttpRequest

【问题讨论】:

【参考方案1】:

不,你不能这样做,但你可以在控制台中运行它或将它添加到你的代码中

XMLHttpRequest.prototype.open = (function(open)
    return function(method, url, async, user, password) 
        console.log("xhr call: "+url +"isAsync: "+async);
        open.apply(this, arguments);
    ;
)(XMLHttpRequest.prototype.open);

它记录了信息:D 希望它有帮助

【讨论】:

【参考方案2】:

我不知道你是否还在寻找答案,但我希望这会对某人有所帮助!

在 chrome 浏览器中导航到 rightClick/inspect/networkTab/xhr?将光标移动到处理您的请求的时间,如下图所示:

这是我的异步代码(默认 ajax)

`$.ajax(
    type: "GET",
    contentType: "application/json",          // data type of request
    url: //url,
    data: //data,
    dataType: "json",                             // data type of response
    success: function (result)   
        
        // some code here

    

);`

我对 localhost 进行了一系列 ajax 调用,每个调用都链接到前一个调用的响应。但是我得到了错误的输出,因为几乎同时发送了所有 ajax 请求,并且本应连续接收的响应(蓝色)被打乱了。下面的时序图完美地显示了这个问题(查看瀑布选项卡)。

这是我的同步调用代码(异步:在 ajax 中为 false)

$.ajax(
async: false,
type: "GET",
contentType: "application/json",          // data type of request
url: //url,
data: //data,
dataType: "json",                             // data type of response
success: function (result)   

    // some code here


);

现在如何知道 async: false 是否有效?

您可以看到异步模式下 ajax 调用的时间相互重叠,并且同步模式下的调用时间(async: false) 是明显分开的,因此证明同步调用 [async: false] 工作正常。如果时间仍然重叠,那么同步调用可能无法正常工作,这与我的情况不同。

【讨论】:

【参考方案3】:

如果指定为同步,则所有 ajax 请求都是异步的,因此他们将其称为 异步 JavaScript 和 XML (AJAX)。要使 ajax 请求同步,您必须在类似这样的 XMLHTTPRequest 对象的 open 方法中传入 false

var xhr = new XMLHttPRequest();
xhr.open("POST", "file to get.php", false);

第三个参数指定为同步,但默认为true

【讨论】:

重新阅读问题,我希望它显示在 chrome 工具中。不想通过代码检查调用是异步还是同步。

以上是关于在浏览器开发工具中检查 ajax 调用是同步的还是异步的的主要内容,如果未能解决你的问题,请参考以下文章

JQuery--->Ajax请求,Session同步问题

识别 ASP.NET MVC 代码中的 Angular js AJAX 调用

记录 -- js浏览器窗口关闭调用ajax

整理ajax同步异步请求

ajax基础一

对 Web 服务的 jQuery Ajax 调用似乎是同步的