скрыть / показать * очень * медленно - PullRequest
6 голосов
/ 28 июля 2011

В настоящее время я использую функции скрытия / показа в jQuery, чтобы помочь отфильтровать таблицу по группам из поля выбора.

Фактический код работает нормально, но невероятно медленно, иногда для его выполнения требуется минута или две.

Я переключил код, поэтому вместо hide () и show () он использует css({'display':'none'}); и css({'display':'block'}); - разница в скорости просто невероятна, теперь она занимает всего несколько секунд, но в Firefox данные таблицы все раздавлены для каждого ряда.

Это не конец света, так как здесь мы почти исключительно используем Internet Explorer, но мне все еще было интересно, есть ли способ обойти это, так как довольно много людей (включая меня) действительно используют Firefox.

Ответы [ 3 ]

4 голосов
/ 28 июля 2011

В Firefox, чтобы показать / скрыть строку таблицы, вы должны установить следующее.

//To show
$("tr").css("display", "table-row");

//To hide
$("tr").css("display", "none");
1 голос
/ 28 июля 2011

Ответ, который упоминает продолжительность для show () и hide (), хорош.Однако, если у вас слишком много строк, разница между show() и display: block или display: table-row заключается в том, что show() запускает анимацию для каждой строки.Это может определенно замедлиться, особенно в случае больших таблиц.

Если вы действительно пытаетесь снизить производительность, попробуйте взглянуть на исходный код jqGrid или SlickGrid.Последний имеет безумно быструю функцию фильтрации, которая определенно будет работать.Если это слишком сложно для вас, просто используйте display: block или display: table-row и display: none.Вы даже можете создать свой собственный плагин jQuery, который выполняет showFast и hideFast, чтобы вам не пришлось повторять этот код.

1 голос
/ 28 июля 2011

API jQuery указывает продолжительность, которую можно установить для функций .show и .hide.Я подозреваю, что когда вы установите это, это может решить вашу проблему.

См. документы для .show () .

См. документы для .hide () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...