У меня очень тяжелый отчет, который я визуализирую в html-таблице. Он динамический, иногда он может иметь 100 строк раз 100 столбцов, иногда он может достигать более 1000 строк. Этот отчет также имеет различные способы визуализации, поэтому я использую CSS для отображения/скрытия некоторых значений в зависимости от того, каким образом я хочу его видеть. Данные в строках - это то, что подобно дереву, поэтому я использую кнопки для отображения/скрыть дочерние строки для имитации эффекта дерева (по умолчанию дочерние строки «закрыты»/отображаются: нет).Heavy HTML, медленная декомпрессия браузера
Проблема заключается в том, что когда я получаю один из этих больших отчетов с 1000 строк, браузер иногда (почти всегда на Chrome, а иногда и на Firefox) занимает длительное время (более 5 минут), чтобы дефрагментировать HTML (что происходит от вызова Ajax). Все дело в том, что около 37 Мб распаковывается, иногда браузер управляет им быстро, в других случаях он очень медленный.
Единственное, о чем я мог думать, - это предоставление частей четкого «представления» отчета (что означает меньшие штыри html), но тогда мне нужно будет обрабатывать все это как минимум три раза (по требованию) поэтому пользователь увидит все возможные комбинации.
Я только начинаю иметь эту проблему, когда hmlt составляет 30 мб плюс. Я знаю, что есть что-то очень неправильное, что я должен делать, но я не знаю, с чего начать большинство материалов, которые я читал о производительности html, похоже, не применяется. У меня нет привязки jquery, работающих при обратном вызове, так что это ничего не связано с этим.
Edit:
Я сделал некоторые испытания после рендеринга его в мелкие куски (большой один пошел от 35MB до 21MB меньший теперь 2,4mb.). Но, похоже, это не связано с размером html, даже меньший иногда замедляется (5 секунд, 3 секунды, а не 30 секунд). Я ошибся.
В настоящее время я использую .html(), чтобы поместить результат вызова ajax в div, я также попытался использовать .load().
Просто для хихиканья попробуйте добавить 'table-layout: fixed;' к правилам CSS для вашей таблицы, если вы еще этого не сделали. См. Http://stackoverflow.com/a/8643718/1030243. – Aaron
перейдите для разбивки на страницы .. –