Что может быть сделано для улучшения производительности IE8 для больших наборов данных?

У меня есть страница, которая отображает ценность на ~300 страниц табличных данных. Firefox, Chrome, Safari все хорошо работают, но IE 7, 8, и 8 представлений Compatibility весь негодяй. Это отстает в течение нескольких секунд, когда я пытаюсь прокрутить или нажать страницу, up/page вниз кнопка.

Разбиение на страницы, меньшие наборы данных и другие предложения удобства использования не будут работать на эту страницу. Предположите, что у меня абсолютно нет выбора, кроме как отобразить все эти данные сразу..., каковы некоторые вещи, которые я могу сделать для тонкой настройки их?

Данные загружаются с помощью jQuery/Ajax, и это, кажется, находится, по крайней мере, в подозреваемом части здесь, потому что, когда я создал тестовую страницу для рендеринга результатов непосредственно, это не является вполне столь же медленным, но все еще почти столь же мгновенным как другие браузеры.

Я успешно использовал плагины jQuery, такие как SlickGrid для занятия подобными проблемами в прошлом, но по причинам, которые заняли бы много времени, чтобы объяснить, что они не опция, даже с микро шаблонными возможностями рендеринга. Я главным образом заинтересован, с какими тонкими настройками я могу сделать для улучшения производительности, не переделывая всю страницу или представив решения других производителей.

Упрощенный DOM будет иметь большое значение? Или разве IE не обрабатывает данные, принесенные на пути JavaScript/Ajax хорошо?

5
задан aw crud 24 May 2010 в 15:10
поделиться

3 ответа

Трудно увидеть без более подробной информации или примера ... как вы создаете контент? При построении содержимого таблицы есть несколько небольших проблем: в частности, установка innerHTML непосредственно на

не работает в IE, поэтому jQuery html () ], вероятно, будет делать это долгим и медленным путем, если вы это используете.

Но универсальный совет для всего, что связано с таблицами, особенно для больших: установите стиль table-layout: fixed в элементе

, задав столбец width стили либо только для первой строки ячеек, либо для набора s. (Столбцы без явной ширины будут делить оставшуюся ширину поровну между ними в ситуации жидкого макета.)

Поскольку это не зависит от количества содержимого в каждой ячейке, фиксировано ] макет таблицы быстрее и более предсказуем, чем алгоритм макета таблицы по умолчанию авто .

4
ответ дан 14 December 2019 в 08:44
поделиться

Я обнаружил, что когда вы динамически вставляете большой сложный контент в На существующей странице IE намного (намного) быстрее устанавливает innerHTML , чем программно создает десятки или сотни узлов DOM и вставляет их, независимо от того, используете ли вы библиотеку на стороне клиента или нет. Если вы визуализируете свой HTML-сервер на стороне сервера и отправляете его в виде строки вместо отправки данных JSON и визуализации на стороне клиента, вы используете большую пропускную способность, но ваши пользователи IE, вероятно, будут иметь лучший опыт.

Производительность javascript IE в настоящее время довольно ужасна, поэтому, если вы хотите ускорить работу своего сайта в IE, сведение к минимуму крупномасштабных манипуляций с DOM - хорошее начало. Не должно быть слишком сложно сделать простой тестовый пример для сравнения, чтобы увидеть, принесет ли такое изменение пользу вашей конкретной ситуации.

0
ответ дан 14 December 2019 в 08:44
поделиться

используйте innerHTML и минимизируйте взаимодействие js / dom. Js не так уж медленен в IE, но мост js/dom очень медленный. Также избегайте выделения элементов в html, который вы собираетесь вставить. Если вы это сделаете, jQuery придется пройтись по каждому элементу и проверить его на соответствие атрибуту id или css. Это очень медленно.

Сама по себе вставка нескольких тысяч элементов в DOM в IE вполне выполнима, но если вы начнете вносить изменения в этот html, вы можете столкнуться с серьезными проблемами с производительностью.

Кроме того, нужен ваш код, чтобы сказать, как сделать его быстрее. Также было бы здорово получить тестовую страницу, которую можно профилировать.

К вашему сведению, единственный инструмент для профилирования производительности, доступный для IE - это dynatrace ajax version. Она бесплатна и является отличным качественным программным обеспечением. Используйте его!

4
ответ дан 14 December 2019 в 08:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: