Как работает Jquery? - PullRequest
       24

Как работает Jquery?

3 голосов
/ 05 июля 2011

Я просматриваю исходный код jQuery для отслеживания события domready, и есть одна вещь, которую я полностью не понимаю.Что если скрипт включен динамически и загружен асинхронно?Таким образом, документ может быть уже загружен при загрузке скрипта.Единственное место, где jQuery проверяет это, это document.readyState.

Поправьте меня, если я ошибаюсь, но разве это свойство не было введено в Firefox совсем недавно?Если это так - событие DomContentLoaded, возможно, уже было запущено (возможно, даже onLoad окна), и в такой ситуации не существует способа фактически вызвать код на domready.

1 Ответ

3 голосов
/ 05 июля 2011

В текущей версии jQuery все это обрабатывается с помощью механизма «Отложено».Готовность страницы инкапсулирована в отложенный объект, а функции просто добавляются в очередь done ().Отложенный API просто запоминает, готова ли страница или нет, поэтому передача функции как «готового» обработчика после того, как страница готова, просто вызовет функцию немедленно.

Код для отслеживания того, когда »готово "на самом деле бывает довольно замученным, однако.

...