【发布时间】:2012-12-07 14:30:51
【问题描述】:
这个问题已经被问过很多次了。但是在 IE 和 Chrome 中没有一个解决方案适合我。
我基本上想在进行 ajax 调用时显示加载图像。
以下是我正在尝试的。
function ws(){
showL();
var res=$.ajax({url:'webservice.asp?service=LoadingTestSRV',async:false,cache:false}).responseText;
$('#dv').html(res);
hideL();
$('#complete').html('Done');
}
function showL()
{
$('#loading').show();
}
function hideL()
{
$('#loading').hide();
}
以下是 HTML
<table cellspacing="1" cellpadding="1" border="1">
<tr><td>
<input type="button" value="ckick" id="btn" onClick="ws();">
<input type="button" value="clear" onClick="$('#dv,#complete').html('');">
</td><td>
<div id="dv"></div>
</td></tr><tr>
<td>Here<div id="loading" style="display:none" >Loading.................</div></td>
<td>final<div id="complete"></div></td></tr>
</table>
经过上面的js,我试过了
- ajaxStart 和 ajaxStop
- $.ajaxSetup
- $.ajax({...}).done(hideL)
我尝试的所有 js 代码都在 Firefox 中运行,但没有一个在 IE 和 Chrome 中运行。 在 Firefox 中,代码按预期工作。加载 div 被显示,ajax 被调用,加载 div 被隐藏。这正是我所期待的。 在 IE 和 Chrome 中,加载 div 不显示。也许在 ajax 调用之后或之前它会很快显示和隐藏。
请告诉我如何使代码在 IE 和 Chrome 中运行。
必须有一些解决方法,因为我看到其他网站显示加载 div。或者也许我在做一些愚蠢的事情。
一旦代码在所有浏览器中运行。我想制作一个通用函数(如 jQuery 插件)以在调用 ajax 时显示加载 div。
【问题讨论】:
-
你能告诉我们究竟是什么不工作吗?是显示但不隐藏还是根本不显示?
async:false会不会是这里的问题? -
我已经更新了上面的帖子。加载 div 未在 IE 和 Chrome 中显示。