有没有办法确认一个特定的ajax请求在浏览器开发工具如Chrome开发者工具或Firebug中是异步的还是同步的?
对于ajax请求,HTTP请求标头不指示其是同步还是异步。
X-Requested-With:XMLHttpRequest
发布于 2017-07-11 18:59:45
不,您不能这样做,但是您可以在控制台中运行它,或者将它添加到您的代码中
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);
它记录了信息:I‘我希望它能有所帮助
发布于 2020-07-02 14:33:59
我不知道你是否还在寻找答案,但我希望这能对某些人有所帮助!
在chrome浏览器中导航到右键单击/inspect/networkTab/xhr?将光标移动到处理您的请求的时间,如下图所示:
这是我的ASYNC代码(默认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中的async: 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)的时间明显不同,从而证明sync调用async : false运行良好。如果计时仍然重叠,则同步调用可能无法工作,这与我的情况不同。
发布于 2016-03-25 01:03:37
所有的ajax请求都是异步的,其他的如果指定为同步的,则是明智的,这就是为什么他们称之为、异步、JavaScript和XML (AJAX)。要使ajax请求同步,必须在XMLHTTPRequest对象的open方法中传入false,如下所示
var xhr = new XMLHttPRequest();
xhr.open("POST", "file to get.php", false);
第三个参数将其指定为同步,但缺省值为true
https://stackoverflow.com/questions/30644220
复制相似问题