Есть ли когда-нибудь условие гонки для загрузки jQuery в приложении? - PullRequest
2 голосов
/ 10 февраля 2012

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

Это, однако, заставило нас задуматься, что произойдет, если библиотека jQueryСам (который загружается через Google) не был загружен достаточно быстро.В частности, будет ли браузер интеллектуально ждать, пока эти строки кода будут выполняться, пока не загрузится библиотека jQuery?Возможно ли условие гонки в этом случае?Пока что большинство наших проблем, похоже, проявляются в IE (даже в 8 и 9) или в некоторых случаях в Firefox.

EDIT : изменение по сравнению с использованием триггера $(document).ready былопредложено в Как я могу убедиться, что действие ссылки по умолчанию всегда отключено? , что также связано с ситуацией в этом вопросе.Кажется, что он хорошо работает со встроенным скриптом в нижней части HTML.В настоящее время неясно, связана ли проблема с тем, что jQuery не загружается (или каким-либо другим элементом), или событие $(document).ready никогда не запускается должным образом.

Ответы [ 2 ]

1 голос
/ 10 февраля 2012

Я не вижу причины, по которой размещение ajax-вызовов было бы лучше вне $(document).ready ... на самом деле $(document).ready ожидает загрузки всех файлов ... именно поэтому он используется (конечно, не единственная причина )

Итак, поскольку ваши jjery ajax-вызовы помещаются в $(document).ready callback, вы можете быть уверены, что все ваши js-файлы загружены до этого, и что выследует искать причину ваших проблем в другом месте.

0 голосов
/ 10 февраля 2012

Некоторые браузеры загружают весь javascript, который находится на локальном сервере, перед загрузкой междоменных сценариев. Таким образом, вполне возможно, что ваши сценарии загружаются в первую очередь до загрузки библиотеки jQuery из Google. Я бы предложил использовать триггер $(document).ready.

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