Оптимизация таблиц с большим количеством данных
MostInfo.net (http://mostinfo.net/article/34/62.htm)

Данная статья будет больше интересна разработчикам сайтов, но возможности, описанные в ней, могут быть полезны и владельцам сайтов с большим количеством данных в виде таблиц...
 
Северин Паньков
6floor.ru
10-05-2004
 

Всем известно, что броузер осуществляет построение и отображение загружаемой страницы постепенно, по мере загрузки составляющих ее компонент. Сначала посетитель увидит текст страницы, после чего начнет "проявляться" графика, апплеты и прочие ее элементы. Для пользователя такая возможность очень удобна, поскольку позволяет ознакомиться с частью информации и найти необходимые ссылки без ожидания завершения загрузки.

При загрузке страницы с таблицей броузер не в состоянии отобразить содержимое ячеек таблицы до тех пор, пока не закончит загрузку содержимого этих ячеек. Это связано с тем, что броузеру необходимо знать размеры таблицы, которые могут многократно меняться в процессе загрузки содержимого. Таким образом, пользователь не сможет увидеть текст внутри таблицы до окончания загрузки содержимого этой таблицы.

Выход из создавшейся ситуации нам предлагают создатели броузеров, которые вводят собственные расширения HTML и CSS для оптимизации работы своих броузеров. Предлагаю Вам ознакомиться с возможностями броузера Microsoft Intenet Explorer. Возможности Netscape Navigator я рассмотрю в следующий раз.

Производительность построения таблицы в IE может быть значительно увеличена, если установить для этой таблицы стиль table-layout в значение fixed. При этом размеры таблицы будут определяться в следующем порядке:

  • С использованием атрибута width тэгов COL и COLGROUP.
  • Путем анализа форматирования первой строки таблицы.
  • Равным делением ширины таблицы на количество ее ячеек.

Например:

<TABLE STYLE="table-layout:fixed" WIDTH=600> <COL WIDTH=100><COL WIDTH=300><COL WIDTH=200> <TR HEIGHT=20> <TD>...</TD><TD>...</TD><TD>...</TD> </TR> : </TABLE>

Если применен стиль table-layout со значением fixed, то броузер не будет дожидаться загрузки всего содержимого таблицы, начав отображать ее строки сразу, по мере загрузки. При использовании тэгов COL необходимо задать атрибут width для каждого из них и для тэга TABLE. Если теги COL не указаны, броузер проанализирует формат первой строки таблицы и будет строить все остальные строки, используя полученную информацию. Если невозможно определить формат первой строки и не указаны тэги COL, то размер таблицы делиться поровну между всеми ее колонками.

Выигрыш в скорости особенно впечатляет в случае с большими таблицами. Вы можете посмотреть пример.

К сожалению, этот подход не работает в Netscape Navigator. Но он и не мешает его работе, поскольку броузеры игнорируют незнакомые теги и атрибуты. Об оптимизации таблиц в Netscape Navigator я расскажу в следующей статье, и Вы сможете добиться одинакового результата, применяя к таблицам оба подхода одновременно.



Оригинал статьи находится по адресу http://mostinfo.net/article/34/62.htm