IE не обновляет отображение после того, как панель обратного вызова обновляет DOM

StackOverflow https://stackoverflow.com/questions/831223

Вопрос

У меня есть панель обновлений на странице ascx с использованием .Net 3.5.

Пользователь вводит данные, инициирует обратный вызов и ajax обновляет DOM.

Обычно все как надо. Время от времени DOM обновляется, и IE не утруждает себя обновлением дисплея. Вся обновленная область кажется пустой.

Как только пользователь делает что-то, что вызывает обновление, например, изменяет размер окна, данные мгновенно появляются на экране, но не раньше.

Почему это? Что может быть причиной этого? Как это можно исправить?

Это было полезно?

Решение

Вы можете «исправить» это, переключившись на настоящие браузеры:)

Действительно, вы могли бы быть в состоянии исправить это в соответствии с обнаруженным мною трюком на этой странице .

По сути, вам нужно создать пустой узел и удалить его локально после обновления DOM новым содержанием :

var t = document.createTextNode('temp text');
element.appendChild(t); // Not sure if this is any element
                        // or one inside your new DOM nodes.
setTimeout(function() { t.parentNode.removeChild(t); }, 0);

На этой странице автор говорит:

  

Даже с моим " исправлением " это работает только если   пользователь перемещает курсор мыши   окна и обратно.

Но я думаю, что это так же хорошо, как и получается ... Я думаю, что IE, возможно, не будет запускать обновление, если в окне браузера не будет каких-либо действий, чтобы сэкономить время обработки.

Это давно известная действительно раздражающая ошибка в IE, хотя я нигде не могу ее найти. Фактически, даже у Opera есть такая ошибка время от времени.

Кроме того, даже если вы решите это с помощью этого трюка, убедитесь, что каждый отдельный фрагмент HTML действителен. Вы можете проверить это в http://validator.w3.org . Если какой-то фрагмент кода недействителен, вы не можете обвинить браузер в том, что он не понял, что вы имели в виду.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top