Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Событие после рендеринга страницы (https://javascript.ru/forum/misc/28934-sobytie-posle-renderinga-stranicy.html)

oneguy 09.06.2012 16:53

Можно добавить <script> элемент после таблицы. Тогда он будет выполняться после рендеринга таблицы.

dmitriymar 09.06.2012 17:13

Цитата:

Сообщение от oneguy
Можно добавить <script> элемент после таблицы. Тогда он будет выполняться после рендеринга таблицы.

?? пока скрипт не загрузится не будет window.onload
а костыль -своё событие?
если нет поддержки requestAnimationFrame:
по онлоаду брать размеры таблицы.
потом по таймеру в проверять изменение размеров таблицы -если в течении н времени её размеры не менялись -значит она отрендерилась полностью-вызвать функцию на событие полного рендера.
можно по идее и размер страницы проверять -но,не во всех случаях подойдёт

Aetae 09.06.2012 19:40

Мб, как нормальные люди поступают в таких случаях, использовать table-layout:fixed?

oneguy 09.06.2012 20:09

Да, извиняюсь, window.onload выполняется в том числе после всего HTML кода.
Но в общем случае даже <script> элемент после таблицы должен выполняться после рендеринга таблицы. Раз автор написал, что это не так, то, возможно, таблица формируется при помощи асинхронных запросов или скриптов?

dmitriymar 09.06.2012 20:49

Событие онлоад -это событие полной загрузки документа.
Загрузка документа и построение вью это чуть разные вещи судя из учебников по css
Поэтому событие requestAnimationFrameсрабатывает после window.onload
Таблица же - неоднократно пересчитываться если не указанны фиксированные размеры. Поэтому событие онлоад не признак окончательного построения таблицы

oneguy 09.06.2012 22:36

Я правильно понял, что автор хочет выполнить что-то типа getComputedStyle(table).width чтобы узнать ширину таблицы. Может ли быть такое, что после срабатывания load в таблице used style ещё не вычислился?
Если я правильно понимаю, used values элементов полностью определяется структурой документа и подключенных CSS листов, поэтому пересчитывать used values имеет смысл только при изменении последних.
Я не знаю, сказано ли в спецификации о том, должны ли быть вычислены все used values к моменту события load.

nerv_ 10.06.2012 00:05

Цитата:

Сообщение от Aetae
Мб, как нормальные люди поступают в таких случаях, использовать table-layout:fixed?

)))


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