Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Запрет отрисовки браузером таблицы (https://javascript.ru/forum/events/9551-zapret-otrisovki-brauzerom-tablicy.html)

kidar2 24.05.2010 11:01

Запрет отрисовки браузером таблицы
 
Есть некоторая таблица, у неё через js задаются высоты строкам.
Если таблица широкая, то этот процесс занимает много времени, т.к. после задания
row.style.width = n + 'px'
перерисовывается вся таблица. Можно ли как-то вызвать эту перерисовку позже, т.е. отложить ?

Gvozd 24.05.2010 11:23

Цитата:

Сообщение от kidar2
высоты

Цитата:

Сообщение от kidar2
row.style.width

вы уж определитесь, ширину вы или высоту им задаете

попробуйте setTimeout

subzey 24.05.2010 11:27

Можно выдернуть её из DOM, а потом вставить после манипуляций обратно. Но это на крайний случай, если высота всех ячеек планируется одинаковой, лучше задавать её через css'ное правило, тогда reflow будет только один. А если к тому же различных значений высот ячеек всего два-три, то можно обойтись заданием класса для таблицы.

kidar2 24.05.2010 12:24

Ошибся, строке задаётся высота
row.style.height = n + 'px'

kidar2 24.05.2010 12:26

Высота у каждой строки м.б. своя.
Чем поможет выдёргивание из DOM? Когда мы будет вставлять обратно таблица всё-равно будет перерисовываться

Gvozd 24.05.2010 12:40

Цитата:

Сообщение от kidar2
Когда мы будет вставлять обратно таблица всё-равно будет перерисовываться

но уже один раз, вместо количества раз, по количеству измененных строк

Riim 24.05.2010 12:42

Цитата:

Сообщение от subzey
Можно выдернуть её из DOM

display: none; вроде такой же эффект дает.

kidar2 24.05.2010 13:12

К сожалению прятать или выдёргивать из dom неполучиться...
Вкратце стоит такая задача:
Есть LeftTable и DataTable. У них одинаковое кол-во строк, нужно через js пробежаться по всем строкам, проверить одинаковая ли у строк высота, и если отличается то надо фиксить либо leftRow, либо dataRow...

subzey 24.05.2010 18:05

Ох! А нельзя ли это просто в одну таблицу внести?

kidar2 25.05.2010 06:34

Если бы можно было, не стал бы так извращаться...


Часовой пояс GMT +3, время: 09:19.