Как я могу устранить проблемы производительности рендеринга в IE - PullRequest
4 голосов
/ 17 октября 2008

Наше веб-приложение отображает быстро в некоторых браузерах IE, медленно в других ... Кажется, это проблема с отображением HTML ... Первые 10% страницы отображаются сразу, последние 90% занимают до 10 секунд и это статический контент. Я бегал с firefox / yslow, очень быстро рендерится. Кажется изолированным для некоторых пользователей / конфигураций т.е. Причудливый режим, похоже, не имеет значения.

Есть ли инструмент или приложение, которое я могу использовать, чтобы помочь мне обнаружить узкое место рендеринга? Я делаю что-то вопиющее в своем коде? Может ли это быть проблема JavaScript? Любая помощь или предложения будут высоко оценены. спасибо.

Ответы [ 7 ]

4 голосов
/ 17 октября 2008

Используйте Fiddler для просмотра времени загрузки изображений, CSS, JS-файлов и т. Д. Другими словами, является ли кеширование проблемой? Javascript может определенно вызывать проблемы в разных версиях браузера. В некоторых версиях вы найдете много оптимизаций, которых нет в других. Кроме того, убедитесь, что ваш HTML является правильно сформированным HTML, если это возможно. То, как устроена страница, также может повлиять на жизнь. Если ваше дерево документов глубокое, может потребоваться подождать, чтобы отобразить большие разделы, пока оно не прочитает все дочерние узлы. Еще одна вещь, которую стоит отметить, некоторые панели инструментов и плагины ожидают загрузки и могут замедлить срок службы. Прокси-сервер HTTP может помочь вам наблюдать за тем, что происходит в сети, по крайней мере.

Не уверен, что какие-то из этих идей могут помочь вашей точной проблеме, но они могут помочь жизни в целом.

3 голосов
/ 17 октября 2008

Если он работает быстро в FF или Chrome, то это точно проблема с JavaScript. IE7 ОЧЕНЬ медленен в обработке большого количества скриптов и сложного HTML. У нас была страница sharepoint, на рендеринг которой потребовалось 10 секунд в IE и 1 секунда в FF и Chrome. Мы протестировали страницу, добавив таймер к обработке на стороне сервера и отправив вывод клиенту через Response.Write (). Делая это, мы можем определить время сервера для обработки страницы и время клиента для отображения страницы (поскольку вы увидите результаты таймера на экране, а затем подождите 10 секунд, пока остальные будут отображаться). Узким местом было 100% IE на клиенте. Это также объясняет, почему скорость была переменной на компьютерах разных людей, потому что в зависимости от того, насколько быстро клиентский компьютер отображал страницу с некоторой скоростью от 8 до 15 секунд.

Мы даже заставили MS взглянуть на эту проблему, и они подтвердили, что в IE есть механизм «расширенного рендеринга», который работает медленнее ... IE8 работает намного быстрее, но сегодня это никому не поможет.

1 голос
/ 13 декабря 2010

Проверка утечки памяти в скрипте.

http://www.javascriptkit.com/javatutors/closuresleak/index.shtml

1 голос
/ 17 декабря 2009

Существует специальный инструмент для таких сценариев, который называется dynaTrace, который доступен бесплатно на этом сайте: http://ajax.dynatrace.com/pages/ Этот инструмент действительно может помочь вам, потому что он отслеживает почти все и специально создан для IE.

1 голос
/ 17 октября 2008

Используете ли вы какое-либо поведение в вашем CSS? Я видел, как поведение ставит приложение на колени, если слишком много используется и / или если они влияют на слишком много элементов. Проверьте наличие каких-либо файлов .htc.

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

0 голосов
/ 18 декабря 2009

Я использую HttpWatch для устранения проблем связанных ресурсов (изображений, сценариев, CSS), проблем с сетью или HTTP в IE. Есть бесплатная и платная версия. Бесплатно - это хорошо, но вы теряете некоторые приятные функции.

0 голосов
/ 17 октября 2008

Стив Соудерс дает отличную презентацию по 14 (простым) шагам для повышения производительности ваших веб-страниц:

http://developer.yahoo.net/blogs/theater/archives/2007/08/steve_souders_high_performance.html

Если он висит в середине страницы, первое, что я лично хотел бы сделать, это убедиться, что все мои JavaScript-коды находятся в нижней части страницы.

IE отлично работает плохо, особенно с JavaScript, поэтому, если вы переместите его в конец, IE может отобразить страницу, , затем продолжите обработку JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...