Как мне отложить отображение страницы до завершения JS? - PullRequest
1 голос
/ 22 января 2011

Я выполнил предварительный поиск StackOverflow и поискал в Интернете.Я подозреваю, что ответ «это не может быть сделано.'но я надеюсь, что у кого-то здесь может быть решение.

Моя страница загружается нормально, но многие из моих компонентов YUI не загружаются полностью перед отображением.Например, мой DataTable изменит свой размер при отображении, или мои кнопки появятся в их исходном виде, а затем получат YUI-Fied.

Есть ли способ отложить отображение страницы, пока весь Javascript не будет завершен (т.е. все мои компоненты YUI закончили рендеринг)?Я не знаю, как это могло бы произойти, поскольку большая часть JS зависит от присутствия DOM, чтобы манипулировать им.

Ответы [ 2 ]

1 голос
/ 23 января 2011

Есть ли способ отложить отображение страницы

Если я правильно понимаю, вы хотели бы скрыть это, пока это не будет сделано?Если это так, у меня есть идея:

  1. добавить обертку вокруг элемента, который вы хотите скрыть (или использовать position: absolute, чтобы покрыть его)
  2. дать этому div фон, которыйиспользуйте цвет окружения с положительным z-индексом
  3. , когда весь ваш javascript загружен, удалите z-индекс или измените цвет фона на прозрачный

Ваш код JavaScriptбудет выглядеть так:

  • сделать 1. и 2.
  • загрузить свой JS
  • сделать 3.

Конечно, этодолжен быть синхронизирован.
В качестве альтернативы вы можете использовать visibility:hidden / visible на самом элементе, но я не знаю точно, хорошо ли он поддерживается.

0 голосов
/ 22 января 2011

Попробуйте поместить свой Javascript в раздел заголовка страницы, как если бы он был ближе к концу страницы, он загрузился бы позже (заставляя первые элементы загружаться быстрее).ИЛИ, что еще лучше, подайте сжатый Javascript и через CDN, например Amazon CloudFront, чтобы он быстро загружался.

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