jQuery + таблица + IE7 + большие таблицы = ад - PullRequest
7 голосов
/ 17 ноября 2010

Я широко использую jQuery и плагин tablesorter , но с таблицами значительного размера (900-1200 строк) плагин просто останавливает Internet Explorer (пробовал 7 и 8).

Да, я хотел бы разбить на страницы (не могу); да, я хотел бы сказать всем, чтобы использовать Chrome (не могу), но мне интересно, есть ли у кого-нибудь другие решения. Возможно, более быстрый плагин сортировки таблиц, или что-то, что я могу попробовать. Я действительно не хочу выполнять сортировку на стороне сервера.

Спасибо!

Ответы [ 3 ]

3 голосов
/ 23 ноября 2010

Как насчет нумерации на стороне клиента?Вероятно, скорость исходит от манипуляций DOM, а не алгоритма сортировки.Поэтому сохраняйте данные в массиве javascript, отображайте только первые 20 элементов и сортируйте их по массиву, а не по элементам.

1 голос
/ 23 ноября 2010

У меня была точно такая же проблема с точно такими же инструментами. Лучшее, что вы можете сделать, - это сделать ваш HTML максимально чистым. И всегда не забывайте добавлять элемент tfoot ДО элемента tbody. Это поможет IE рендерить таблицу быстрее:

<table>
    <thead>
        <tr>
            <th>headers here</th>
        </tr>
    </thead>
    <tfoot>
        <tr>
            <td>footers here</td>
        </tr>
    </tfoot>
    <tbody>
        <tr>
            <td>body here</td>
        </tr>
    </tbody>
</table>

Даже если вам не нужен нижний колонтитул, сделайте это так. Единственный совет, который у меня есть, - это попробовать некоторые CSS-трюки, чтобы стилизовать или скрыть таблицу, пока не завершится загрузка javascript. Может быть, начать с анимированной загрузки GIF, и удалите его, когда javascript будет сделано.

0 голосов
/ 08 марта 2011

IE 8 и Firefox не могут обрабатывать большие дампы таблиц. Они определенно каркают на 1000 строк. Я видел это с моим заявлением.

Chrome буквально сверхбыстрый и будет загружать тысячи строк HTML-таблицы в 100 раз быстрее.

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

Несмотря на то, что загрузка таблицы из 5000 строк занимает в 100 раз больше времени, ссылки на классы не прерываются в IE8 или Firefox. Но кто может позволить себе так долго ждать.

Я думаю, что открыл ошибку в Chrome и больше ничего не слышал.

Поскольку моя веб-страница работает в закрытой среде, мне легко заставить всех использовать Chrome.

Это - то, где ОТКРЫТЫЙ ИСТОЧНИК становится проблемой. Некому звать на помощь!

...