2015-05-17 3 views
2

Какова цель этого кода:Почему я связываю свой jquery внутри document.write?

<script>window.jQuery || document.write('<script src="jquery-1.11.3.min.js"><\/script>')</script> 

в противоположность:

<script src="jquery-1.11.3.min.js"></script> 

..when связывая JQuery в мой HTML-файл.

Это может быть глупый вопрос. Я новичок в веб-разработке. Мой jquery не будет работать, когда я использую первый код. Когда я сокращаю его до второго кода, он загружается, но он глючный. У меня этот код перед </body>. Любая помощь приветствуется.

+0

Вторая версия подходит для большинства «нормальных» веб-страниц. Что значит «глючный»? Пожалуйста, будьте более конкретными. Вы указываете, что код перед '', но где ваш код, который на самом деле использует jQuery? – nnnnnn

+0

Я использую aptana 3. Когда я просматриваю, страница не останавливает загрузку, но функция jquery, которую я написал, работает. Это также замедляет аптану. У меня есть код, который загружает jquery чуть выше кода, который ссылается на мой файл jquery. Я считаю, что это правильный порядок. –

ответ

5

Эта строка кода обычно используется при загрузке JQuery из CDN, как

<script src="//code.jquery.com/jquery-1.11.3.min.js"></script> 

<script>window.jQuery || document.write('<script src="jquery-1.11.3.min.js"><\/script>')</script> 

Второй сценарий тег будет проверять, если window.jQuery определен (что означает, что сценарий был успешно загружен с CDN). Если не загружать локально сохраненную версию.

+0

Отлично, я загружаю jquery из CDN. Можете ли вы рассказать мне, почему мой jquery не работает, когда я использую первый пример в моем вопросе и почему он работает, когда я использую второй пример из моего вопроса?Я пытался понять это часами. –

4

Цель первого фрагмента кода - проверить, загружен ли jQuery или нет. Это то, что

window.jQuery || .... 

говорится. Либо window.jQuery существует OR Сделайте что-нибудь еще.

Если window.jQuery является undefined, он будет

document.write('<script src="jquery-1.11.3.min.js"><\/script>') 

загрузить JQuery.

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

+0

Отлично, это имеет смысл. Поэтому, если код вызывает jquery, код document.write добавит необходимую строку сценария. Я правильно понимаю это? –

+0

@JasonCarrick На самом деле. Эта строка не будет проверять ваш скрипт на зависимость от jQuery, он просто добавит его, если он еще не определен. – mpen

2

Традиционно события Javascript были прикреплены к документу, используя атрибут «onload» в теге страницы. Забудьте эту практику. Вытрите это из своего ума. jQuery предоставляет нам специальную утилиту для объекта документа, называемую «готовой», что позволяет нам выполнять код ТОЛЬКО после полной загрузки DOM. Это ключ к ненавязчивому сценарию DOM, поскольку он позволяет полностью отделить наш Javascript-код от нашей разметки. Используя $ (document) .ready(), мы можем поставить в очередь ряд событий и выполнить их после инициализации DOM. Это означает, что мы можем создавать целые эффекты для наших страниц без изменения разметки для рассматриваемых элементов.

Смежные вопросы