4

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

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

请指教!。谢谢!

4

2 回答 2

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 上的动画中并不能一直有效。总有什么不存在?... :(

于 2012-03-13T23:15:55.100 回答
1

一些浏览器在处理 JavaScript 时会暂停渲染当前显示的元素。所以我总是注意到的行为是这样的:

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

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

于 2011-08-25T05:41:02.220 回答