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

发布于 2024-12-01 10:49:05 字数 115 浏览 1 评论 0原文

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

问题:它显示一段时间,但随后停止引用(或者更确切地说,停止播放/旋转)。造成同样情况的实际原因是什么?

请指教!谢谢!

I have used ajax update progress control that shows the animated gif when postback happens.

Problem: It displays for a while but then it stops refershing (or rather, stops playing/revoloving). What could be the actual cause of the same?

Please advice!. Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

水晶透心 2024-12-08 10:49:05

使用 Internet Explorer 时,.gif 的动画将在回发时停止。该问题是 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 无法在回发动画中一直工作。总有一些东西不存在? ... :(

The animation of a .gif will stop on PostBack with Internet Explorer. The problem is inherent to Internet Explorer. Apparently this issue goes all the way back to IE 6 (though I've only confirmed it in IE8).

There is a little hack around it, and that's by updating it's source with a setTimeout

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

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

You could also use jQuery to animate a graphic. This works in IE, but now I notice that Chrome doesn't work all the way through the animations on PostBack. There's always something isn't there? ... :(

混浊又暗下来 2024-12-08 10:49:05

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

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

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

Some Browsers pause rendering of the current displayed elements while they are processing JavaScript. So the behaviour I always notice is this:

  • The Page starts a postback and displays the progress animation
  • The server processes the request while the animation is running
  • The server sends the results back to the browser
  • The browser receives the result and starts processing it, while PAUSING the animation
  • When the browser is finished it removes the progress animation

Depending on how long the browser takes to compute the actual changes on the page (longer on older browsers, especially IE6, IE7 are extremely slow) this can take quite some time. Additionally, errors in the JavaScript at this stage could also cause the progress panel to be displayed 'forever'.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文