У меня есть страница, которая отображает ценность на ~300 страниц табличных данных. Firefox, Chrome, Safari все хорошо работают, но IE 7, 8, и 8 представлений Compatibility весь негодяй. Это отстает в течение нескольких секунд, когда я пытаюсь прокрутить или нажать страницу, up/page вниз кнопка.
Разбиение на страницы, меньшие наборы данных и другие предложения удобства использования не будут работать на эту страницу. Предположите, что у меня абсолютно нет выбора, кроме как отобразить все эти данные сразу..., каковы некоторые вещи, которые я могу сделать для тонкой настройки их?
Данные загружаются с помощью jQuery/Ajax, и это, кажется, находится, по крайней мере, в подозреваемом части здесь, потому что, когда я создал тестовую страницу для рендеринга результатов непосредственно, это не является вполне столь же медленным, но все еще почти столь же мгновенным как другие браузеры.
Я успешно использовал плагины jQuery, такие как SlickGrid для занятия подобными проблемами в прошлом, но по причинам, которые заняли бы много времени, чтобы объяснить, что они не опция, даже с микро шаблонными возможностями рендеринга. Я главным образом заинтересован, с какими тонкими настройками я могу сделать для улучшения производительности, не переделывая всю страницу или представив решения других производителей.
Упрощенный DOM будет иметь большое значение? Или разве IE не обрабатывает данные, принесенные на пути JavaScript/Ajax хорошо?
Трудно увидеть без более подробной информации или примера ... как вы создаете контент? При построении содержимого таблицы есть несколько небольших проблем: в частности, установка Но универсальный совет для всего, что связано с таблицами, особенно для больших: установите стиль Поскольку это не зависит от количества содержимого в каждой ячейке, Я обнаружил, что когда вы динамически вставляете большой сложный контент в На существующей странице IE намного (намного) быстрее устанавливает Производительность javascript IE в настоящее время довольно ужасна, поэтому, если вы хотите ускорить работу своего сайта в IE, сведение к минимуму крупномасштабных манипуляций с DOM - хорошее начало. Не должно быть слишком сложно сделать простой тестовый пример для сравнения, чтобы увидеть, принесет ли такое изменение пользу вашей конкретной ситуации. используйте innerHTML и минимизируйте взаимодействие js / dom. Js не так уж медленен в IE, но мост js/dom очень медленный. Также избегайте выделения элементов в html, который вы собираетесь вставить. Если вы это сделаете, jQuery придется пройтись по каждому элементу и проверить его на соответствие атрибуту id или css. Это очень медленно. Сама по себе вставка нескольких тысяч элементов в DOM в IE вполне выполнима, но если вы начнете вносить изменения в этот html, вы можете столкнуться с серьезными проблемами с производительностью. Кроме того, нужен ваш код, чтобы сказать, как сделать его быстрее. Также было бы здорово получить тестовую страницу, которую можно профилировать. К вашему сведению, единственный инструмент для профилирования производительности, доступный для IE - это dynatrace ajax version. Она бесплатна и является отличным качественным программным обеспечением. Используйте его! innerHTML
непосредственно на
не работает в IE, поэтому jQuery
html ()
], вероятно, будет делать это долгим и медленным путем, если вы это используете.
table-layout: fixed
в элементе
, задав столбец
width
стили либо только для первой строки ячеек, либо для набора
s. (Столбцы без явной ширины
будут делить оставшуюся ширину поровну между ними в ситуации жидкого макета.)
фиксировано
] макет таблицы быстрее и более предсказуем, чем алгоритм макета таблицы по умолчанию авто
. innerHTML
, чем программно создает десятки или сотни узлов DOM и вставляет их, независимо от того, используете ли вы библиотеку на стороне клиента или нет. Если вы визуализируете свой HTML-сервер на стороне сервера и отправляете его в виде строки вместо отправки данных JSON и визуализации на стороне клиента, вы используете большую пропускную способность, но ваши пользователи IE, вероятно, будут иметь лучший опыт.
Похожие вопросы: