更新进度动画gif在回发时停止

时间:2011-08-25 04:54:05

标签: asp.net ajax asp.net-ajax ajaxcontroltoolkit updateprogress

我使用了ajax更新进度控件,显示回发发生时的动画gif。

问题:它会显示一段时间但会停止引用(或者更确切地说,停止播放/转动)。可能是同样的原因是什么?

请指教!谢谢!

2 个答案:

答案 0 :(得分:9)

.gif的动画将在使用Internet Explorer的PostBack上停止。这个问题是Internet Explorer固有的。显然这个问题一直追溯到IE 6(虽然我只是在IE8中确认了它。)

围绕它有一点点破解,那就是用setTimeout来更新它的来源

function UpdateImg(ctrl) {
var img = document.getElementById(ctrl);
img.src = img.src;
}

setTimeout(function() { UpdateImg('image1'); }, 50);

您还可以使用jQuery为图形设置动画。这适用于IE,但现在我注意到Chrome在PostBack上的动画一直无法正常工作。总有一些不存在的东西? ...... :(

答案 1 :(得分:1)

某些浏览器会在处理JavaScript时暂停呈现当前显示的元素。所以我经常注意到的行为是:

  • Page开始回发并显示进度动画
  • 服务器在动画运行时处理请求
  • 服务器将结果发送回浏览器
  • 浏览器接收结果并开始处理,同时暂停动画
  • 浏览器完成后,将删除进度动画

根据浏览器计算页面实际更改所花费的时间(在较旧的浏览器上更长,尤其是IE6,IE7非常慢),这可能需要相当长的时间。此外,此阶段JavaScript中的错误也可能导致进度面板“永远”显示。