Проверьте, загружен ли jQuery, и если да, сделайте что-нибудь

0

У меня есть сценарий, который выполняется при загрузке страницы, используя PHP, и поскольку буферизация вывода включена, я отключил ее... однако, поскольку это происходит при загрузке страницы, код внутри основного тега для страницы, используя jQuery $(document).ready(function() {//... my code }); не запускается до тех пор, пока не будет загружена вся страница.

Мне нужно запустить этот код до загрузки страницы, но после загрузки jQuery. Я использую Google CDN для загрузки jQuery. Любая идея о том, как это сделать, не допуская ошибки в выражении $ не undefined?

Благодарю.

  • 0
    Используйте ваш // ... мой код без .ready before </ html>
  • 0
    см. этот ответ [ stackoverflow.com/a/6944142/3091574]
Показать ещё 5 комментариев
Теги:
output-buffering

1 ответ

1
Лучший ответ

Теги <script> представленные в HTML (без тегов defer или async), выполняются в порядке, указанном в файле HTML. Если вы хотите, чтобы какой-либо код выполнялся немедленно, как только jQuery был доступен, вы можете поместить этот код в <script> сразу после <script> который загружает jQuery.

<script src="jquery.js"></script>
<script>Your jQuery code here to run as soon as possible</script>

Имейте в виду, что только потому, что загружается jQuery, это не означает, что DOM из документа загружен и готов к работе. Если это действительно то, что вам нужно подождать, тогда вам нужно будет поместить свои скрипты прямо перед </body> или использовать $(document).ready(fn) и дождаться появления этих событий. Поскольку jQuery в основном касается изменения DOM, мне любопытно, какой код jQuery вы хотите запустить раньше, чем DOM будет готов?

Если вы загружаете jQuery динамически (что вы не упоминали), вы также можете установить монитор именно тогда, когда этот динамически загруженный скрипт заканчивает загрузку и отвечает на это событие, запустив ваш код.

Полное описание порядка выполнения скриптов см. В этом сообщении: загрузка и выполнение порядка скриптов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню