YUI: обеспечение готовности элементов и сценариев DOM - PullRequest
3 голосов
/ 07 мая 2010
  1. Если я добавлю свой встроенный скрипт после элементов DOM, с которыми он взаимодействует, должен ли я по-прежнему использовать событие domready YUI 3 ?
    Я не заметил никаких проблем, и это кажется , как будто я могу рассчитывать на браузер, загружающий страницу последовательно. (Я уже использую YUI().use('node', ..., чтобы убедиться, что нужные мне функции YUI были загружены, поскольку скрипт YUI представляет собой отдельный файл.)

  2. Есть ли способ ускорить загрузку виджетов, таких как календарь YUI 2?
    Я загружаю соответствующий скрипт в <head> элемент моей страницы. Я использую YUI().use('yui2-calendar', ..., чтобы убедиться, что виджет Календарь доступен. К сожалению, это вызывает небольшую, но заметную задержку при загрузке страницы с календарем. Если я опущу код YUI().use('yui2-calendar', ..., то он появится без заметной задержки - но я думаю, что это может привести к тому, что Календарь вообще не будет отображаться, если скрипт YUI не загружается вовремя?

  3. Что касается # 2, возможно ли уменьшить визуальный артефакт календаря, который не присутствует, а затем отображается?
    Я сделал это немного лучше, указав высоту и ширину для родительского элемента div, чтобы по крайней мере пространство уже было выделено => минимальное смещение при загрузке.

Ответы [ 2 ]

2 голосов
/ 07 мая 2010
  1. Вам не нужно готовиться, если код, который обращается к элементам DOM, идет после этих элементов в разметке. Это относится к сценариям DOM в целом, а не только к YUI.

  2. yui2-calendar не идентичен yahooapis.com/2.8.0r4/build/calendar/calendar-min.js. Первый включает в себя некоторый код переноса для изолированной программной среды Calendar API и его зависимостей в среде экземпляра YUI 3. Если вы включаете сценарии YUI 2 в (который, вероятно, следует поместить в конце ), вам не нужно использовать yui2-calendar. Для этого просто дважды загружайте код Календаря. В противном случае, чтобы использовать динамическую асинхронную загрузку YUI 3, вы можете удалить s из и просто использовать ('yui2-calendar'). Вы можете ускорить время рендеринга, включив в разметку yui2- * combo после начального файла yui-min.js. Обратите внимание, что загрузчик всегда будет извлекать файл css, поэтому вам не нужно включать его в разметку.

  3. Вы можете включить CSS и разметку отображаемого Календаря при загрузке страницы, а затем отобразить в контейнере разметки. Я не думаю, что в календаре YUI 2 есть понятие постепенного улучшения существующей разметки, но я могу ошибаться. Он должен сгладить разметку статической таблицы сгенерированной разметкой и оживить интерфейс.

1 голос
/ 07 мая 2010

Если это после указанных узлов, то вам не нужно DOMContentLoaded (или domready).

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