Задержка инициализации таблиц данных jQuery

#javascript #jquery #datatables

#javascript #jquery #таблицы данных

Вопрос:

Когда я использую таблицы данных для замены набора данных в таблице, это отлично работает, но иногда при перезагрузке страницы требуется полсекунды, чтобы обернуть таблицу, показывающую исходную разметку таблицы за этот короткий промежуток времени. Мне было интересно, есть ли способ, возможно, отобразить содержимое страницы только тогда, когда DataTables завершит обертывание таблицы?

Ответ №1:

Есть несколько способов, которыми вы могли бы это сделать. Самый простой, вероятно, следующий:

Во-первых, настройте для своей таблицы отображение: нет с помощью CSS или даже (gasp) с встроенным стилем в вашей разметке.

Затем при инициализации таблиц данных используйте fnDrawCallback для отображения таблицы:

 "fnDrawCallback": function() {
   $(this).show();
}
 

Теперь помните, что фактическая таблица в конечном итоге имеет divs выше и ниже (для верхнего и нижнего колонтитулов). При обновлении страницы они, скорее всего, будут отображаться, пока обновляется сама таблица. Если вы предпочитаете просто скрывать и показывать абсолютно все, вам нужно будет обернуть вашу таблицу в контейнер div, а затем вместо $(this).show() того, чтобы использовать $('.container').show()

Комментарии:

1. спасибо за ответ. Мне пришла в голову похожая идея, но я использовал visibility:hidden ; чтобы не испортить ширину столбцов

2. Хороший материал. Иногда я забываю, что во время подготовки визуального представления пространство должно быть «занято»; это хорошее напоминание мне о том, что visibility: hidden — это вариант, который я чаще рассматриваю в своих собственных проектах!

Ответ №2:

Попробуйте сделать это с body.onload помощью обработчика событий.

Комментарии:

1. У меня уже есть функция onReady, и она загружается раньше, чем onload