Я работаю над webapp для управления данными о продуктах, в которых данные продукта отображаются в таблице с 4 столбцами (номер индекса, SKU, описание продукта и запас).Медленный отклик при большой таблице HTML
Проблема, с которой я столкнулся, заключается в том, что когда таблица стала очень большой (> 1000 строк), страница очень лаги, особенно когда я наводил указатель на строку (я определил tr:hover
в CSS).
Я попытался это исправить, отображая данные частично и загружать больше, когда пользователь прокручивает вниз, с помощью некоторых JavaScript:
if (tablesDIV.scrollTop> = tablesDIV.scrollHeight - (tablesDIV.clientHeight + 80)) {
/*...*/
}
Это дало хорошие результаты, но это не позволяет достичь последнюю строку, нажимая Конец, и когда загружено значительное количество строк, страница снова была ломаной.
Есть ли решение этой проблемы?
EDIT: код CSS, связанный с таблицей.
#tables thead th{border-bottom:1px solid #CCC;background-color:#F5F5F5;background-image:-webkit-gradient(linear,left top,left bottom,from(#F5F5F5),to(#F1F1F1));background-image:-moz-linear-gradient(top,#F5F5F5,#F1F1F1);background-image:-o-linear-gradient(top,#F5F5F5,#F1F1F1);background-image:linear-gradient(top,#F5F5F5,#F1F1F1);font-weight:700;cursor:default}
#tables tbody th{font-weight:700;text-overflow:none}
#tables tbody tr{background:#FFF;cursor:pointer}
#tables tbody tr:nth-child(even){background:#F8F9FC}
#tables tbody tr:hover{background:#CDE}
EDIT2: Demo.
Демо: http://jsfiddle.net/4dpGz/
1000 рядов, похоже, не так много. Вы говорите, что это нормально, если вы удалите эффект tr: hover? – nnnnnn
pagination man!зачем загружать 1000 строк? – Joseph
Вы уверены, что это связано с некоторой неэффективностью в стеке переднего плана? Не тогда, когда, например, вы загрузили данные из БД? – moey