【发布时间】:2014-04-10 12:35:11
【问题描述】:
在下面的 javascript 代码中,我同时发送了两个 Ajax 请求。
在使用 Firebug 进行分析后,我得出了一个不同寻常的结论:
“哪个(Ajax)响应最先出现,最后打印”。
问题 2: 如果我将 Ajax url 目标分配给随机字符串(比如“abcd”)[不存在],那么 ajax 调用的总数将增加到 3?
$(document).ready(function(e) {
$("form[ajax=true]").submit(function(e) {
e.preventDefault();
var form_data = $(this).serialize();
var form_url = $(this).attr("action");
var form_method = $(this).attr("method").toUpperCase();
$("#loadingimg").show();
$.ajax({
url: form_url,
type: form_method,
data: form_data,
cache: false,
success: function(returnhtml){
alert ("a");
// $("#result").html(returnhtml);
// $("#loadingimg").hide();
}
});
$.ajax({
url: form_url,
type: form_method,
data: form_data,
cache: false,
success: function(returnhtml){
// $("#duplicate").html(returnhtml);
// $("#loadingimg").hide();
alert("b");
}
});
});
});
请参考以下Fiddle。
【问题讨论】:
-
"which ever (ajax)response is coming first is printing last"- 也许,也许不是。在您的特定情况下,这可能确实是大多数情况下的结果。根据定义,AJAX 是异步的。无法保证哪个会先“完成”(或根本不会)。 “问题2”没有多大意义,你能详细说明一下吗?事实上,你的问题是什么? -
你需要它们以特定的顺序发生吗?
-
我无法确认。使用小提琴http://jsfiddle.net/d66DN/ 您可以先看到第一个返回警报。此外,如果您向随机 url 发出请求,您会得到 301:premanently removed。如果您只更改一个网址,您将获得 3,同时更改您将获得 4。
-
@David 你可以通过运行 firebug 工具来确认。
标签: javascript jquery ajax frontend