Modernizr vs $ (document) .ready () - PullRequest
       10

Modernizr vs $ (document) .ready ()

6 голосов
/ 02 января 2012

Появляется из сетевой панели, когда вы загружаете скрипты через Modernizr.load, он фактически не блокирует $ (document) .ready ().

Итак, теоретически, допустим, что я добавляю json2.js через Modernizr, а другой разработчик пытается использовать JSON.parse в $ (document) .ready (), их сценарий может фактически сломаться из-за состояния гонки.

Можно ли исправить это, не пытаясь контролировать все проверки кода?

1 Ответ

4 голосов
/ 02 января 2012

Я бы понял так: использование Modernizr (и тестов браузера) для загрузки файлов Javascript - это очень общее дизайнерское решение, о котором все сотрудники вашей команды должны знать в любом случае.

Тем не менее, вы, вероятно, хотите реализовать (если еще не сделали) какую-то инициализацию своего приложения, которая должна выполняться последним - после того, как все было загружено. Затем эта инициализация может быть выполнена в обратном вызове yepnope, по-видимому, даже в оболочке $(document).ready().

Yepnope заявляет в этом контексте в «общих ошибках»:

То, что ваш скрипт готов, не означает, что документ готов. Не забывайте, что вы можете использовать готовые обратные вызовы документов внутри вашего yepnope обратные вызовы . Если вы играете с DOM, мы бы сильно рекомендуем вам сделать это, потому что ваша тестовая среда может действовать в отличие от вашего производственного сервера, скорость резко отличается.


И ради полноты:

Не проверяя их более подробно, вот пара других идей о том, как иметь дело с document.ready + Modernizr.load: Как эффективно использовать yepnope.js с $ (document) .ready ()? и https://stackoverflow.com/a/6767886/564721

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