Я работаю над страницей в веб-приложении с большим столом. 12 столбцов и до 300 строк в некоторых случаях. У меня возникли проблемы с быстрым отображением таблицы в Internet Explorer. Я повторил свои трудности в этом кусочке тестового кода:
http://jsfiddle.net/dSFz5/
Некоторые тесты с IE9 на Intel Quad Core Q8200 с 4 ГБ ОЗУ:
50 строк, 12 столбцов: 432мс
100 строк, 12 столбцов: 1023мс
200 строк, 12 столбцов: 2701мс
400 строк, 12 столбцов: 8107мс
800 строк, 12 столбцов: 24619мс
Экспоненциально плохо.
Мне удалось выкопать некоторый код, который отображает ту же самую тестовую таблицу НАМНОГО быстрее в Internet Explorer, но поскольку я использую шаблоны mustache.js для визуализации своих ячеек и строк (не допуская разметки HTML в моем JavaScript), я Я не могу использовать эти методы DOM:
http://jsfiddle.net/bgzLG/
Результаты тестов:
50 строк, 12 столбцов: 37 мс
100 строк, 12 столбцов: 72 мс
200 строк, 12 столбцов: 146мс
400 строк, 12 столбцов: 324 мс
800 строк, 12 столбцов: 566мс
Я не могу построить блок таблицы за блоком, как во втором примере, потому что в клиентских шаблонах мне нужно вводить строки HTML, возвращаемые усами. Если вы начнете вставлять туда .innerHTML, производительность снова улучшится.
Кто-нибудь может порекомендовать способ построения таблицы более эффективным способом, совместимым с использованием шаблонов на стороне клиента?
Разбиение на страницы - один из способов решения этой проблемы, но я бы хотел решить проблему самостоятельно.
Любые предложения приветствуются!