我试图在用户等待调用服务器时显示加载动画。为此,我尝试使用 JQuery 显示一个 div,但它仅适用于 Firefox(不适用于 IE 或 Chrome)。
现在,BigSlowFuncCall 只有 ac#System.Threading.Thread.Sleep(10000);
JAVASCRIPT
function showloading() {
$('#content').hide();
$('#siteLoader').show();
}
function hideloading() {
$('#content').show();
$('#siteLoader').hide();
}
function CheckFields() {
showloading();
var jsHandler = new JsonHandler();
jsHandler.BigSlowFuncCall();
hideloading();
}
HTML
<div id="wrapper">
<div id="siteLoader" style="display:none;" >
<div id='siteDetailLoader'>
<img src='img/loading.gif' border='0' alt='cargando'>
Por favor, espera<br /> <br />
</div>
</div>
<div id="content">
<form>
<p>
/* Stuff */
</p>
<p class="submit"><input type="button" id="btn" onclick="CheckFields()" class="button-link" value="Descargar"/></p>
</form>
</div><!-- #content-->
</div><!-- #wrapper -->
这在 Firefox 上按预期工作(隐藏内容,显示加载动画,10 秒后隐藏加载动画),但在 IE 中,它仅显示我是否退出该hideloading()
函数并且仅在退出 CheckFields 函数后显示。
这么简单的代码怎么能在 Firefox 上正常工作,但在 IE 上却不行?
编辑:我看到如果我在它alert()
之后放置一个showloading()
完美的作品。所以,我搜索并发现了这个:在 javascript dom 操作后强制在 Internet Explorer 中刷新 DOM。我试过这个https://stackoverflow.com/a/4271996/1824011但它也没有用。