我在我的ASP.NET MVC 2页面中使用jQuery。这是一个超级简单的职位,获得一个日期作为回报。该过程本身运行速度非常快。我想使用微调图像来显示用户正在发生的事情。所有在Firefox中运行正常,在本地进行测试。但是,在IE 8中,微调图像显示的时间不够长;它只是闪烁。这可能会混淆最终用户,如果他们没有看到该进程正在工作/完成的迹象。解决这个问题最好的办法是什么?jQuery + Ajax +加载微调器图像=太快!
谢谢。
<img id="signedout<%: item.Id %>" src="/Content/Images/signed_out.png" alt="Signed Out" title="Signed Out" style="display:none" />
<div id="ajaxloader<%: item.Id %>" style="display:none;text-align:center"><img src="/Content/Images/ajax-loader.gif" alt="loading..." title="loading..." /></div>
<script type="text/javascript">
$(function() {
var id = "<%: item.Id %>";
$("#signout" + id).click(function() {
if (confirm("Are you sure you want to sign this visitor out?")) {
$(this).hide();
//$("#signout" + id).hide();
$("#ajaxloader" + id).show();
var url = '<%: Url.Action("signout") %>';
$.ajax({
type: "POST",
url: url,
data: "id=" + id,
success: function (result) {
$("#timeout" + id).append(result);
$("#ajaxloader" + id).hide();
$("#signedout" + id).show();
$("#row" + id).css("background", "#E8E8E8");
},
error: function() {
alert("There was an unexpected error. Please try again later.");
$("#ajaxloader" + id).hide();
$("#signout" + id).show();
}
});
}
});
});
</script>
在IE8中请求是否完成得更快,或者请求完成之前是否隐藏了微调框?如果它正在快速完成,那么问题是什么? – DLH 2010-08-12 14:34:14
它在IE8中完成得更快,这不是问题。问题是,由于速度太快,用户看不到加载gif,并认为没有发生任何事情。 – Mike 2010-08-12 14:36:30
我想在现实生活中存在网络延迟时,请求可能会更慢地完成? Erm ... – 2010-08-12 14:43:41