【发布时间】:2009-08-12 16:30:54
【问题描述】:
在进行 ajax 调用之前,我使用 $('').show() 显示了一个“正在处理...”div 叠加层,并在完成时隐藏。我遇到的问题是,如果我想显示 div,然后在再次隐藏 div 之前进行几次 ajax 调用,它似乎会在 Internet Explorer (7) 和 Chrome (2.0.172.39) 中对事件进行排队,但我在 Firefox (3.0.13) 中获得预期结果。当有一个 ajax 调用时,它工作正常。代码是这样的:
<div id="foo">processing...</div>
<button onclick="performSingle()" /> <-- This behaves like it's supposed to
<button onclick="performMultiple()" /> <-- This queues the events in IE/Chrome.
<script>
$(document).ready(function(){
$('#foo').hide();
});
function singleAjaxCall() {
$.ajax({
url: ...,
type: "GET",
async: false, //There is a reason for this.
success: function() {}
});
}
function multipleAjaxCalls() {
singleAjaxCall();
singleAjaxCall();
singleAjaxCall();
singleAjaxCall();
singleAjaxCall();
singleAjaxCall();
singleAjaxCall();
singleAjaxCall();
}
function performSingle(){
$('#foo').show();
singleAjaxCall();
$('#foo').hide();
}
function performMultiple(){
$('#foo').show();
multipleAjaxCalls();
$('#foo').hide();
}
</script>
【问题讨论】:
标签: javascript jquery performance internet-explorer