Обновление анимированного GIF останавливается при обратной передаче - PullRequest
4 голосов
/ 25 августа 2011

Я использовал элемент управления обновлением ajax, который показывает анимированный GIF при обратной передаче.

Проблема: отображается некоторое время, но затем перестает ссылаться (точнее, перестает воспроизводиться / вращаться). Что может быть причиной того же самого?

Пожалуйста, совет! Спасибо!

Ответы [ 2 ]

9 голосов
/ 14 марта 2012

Анимация .gif остановится на PostBack с помощью Internet Explorer.Проблема присуща 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 голос
/ 25 августа 2011

Некоторые браузеры приостанавливают рендеринг текущих отображаемых элементов во время обработки JavaScript.Поэтому поведение, которое я всегда замечаю, таково:

  • Страница запускает обратную передачу и отображает анимацию прогресса
  • Сервер обрабатывает запрос во время работы анимации
  • Сервер отправляет результаты обратно в браузер
  • Браузер получает результат и начинает его обрабатывать, одновременно останавливая анимацию
  • Когда браузер заканчивает работу, он удаляет анимацию прогресса

В зависимости от того, сколько времени требуется браузеру для вычисления фактических изменений на странице (в более старых браузерах, особенно в IE6, IE7 работают очень медленно), это может занять довольно много времени.Кроме того, ошибки в JavaScript на этом этапе также могут привести к тому, что панель прогресса будет отображаться «навсегда».

...