2013-08-11 3 views
1

Это начинающий вопрос html5 шаблонного и Javascript в целом, но я не могу найти ответ в любом месте, так что здесь идет ...Как работает резервная копия библиотеки JavaScript jQuery HTML5?

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script> 

Как вторая строка сценария проверки был ли загружен CDN Google или нет? Нет никакого утверждения или что-либо, чтобы предложить это. Мне жаль, если это звучит глупо. Любая помощь?

+0

Можно ли выполнить такую ​​же проверку для импорта css? – TheOne

ответ

3

|| - инструкция if в этом случае. Если window.jQuery возвращает TRUE, то ничего после инструкции or (||) не загрузится. Если это FALSE, он будет продолжать загружать jquery.

Редактировать: Просто уточнить немного. Если вы делаете if (var1 && var2) в javascript, он будет оценивать BOTH-переменные, чтобы проверить, являются ли они истинными. Если вы сделаете это if (var1 || var2), то если первая переменная оценивается как TRUE, нет необходимости оценивать остальную часть выражения, так как она автоматически будет истинна в любом случае.

В этом случае это именно то, что делает ваш код. Если window.jQuery FALSE (значение jQuery не было загружено), продолжайте и оцените следующее выражение, которое в этом случае загружает jquery из локального файла. Это просто не завернуто в инструкцию IF, так как это необязательно.

2

Если файл jQuery из Google CDN или где-либо загружен, он бы добавил свойство jQuery в window объект. Вторая строка вашего скрипта проверяет, определено ли значение window.jQuery или нет, если он не выполняет другую часть инструкции ||, которая добавляет к ней тег сценария, содержащий локальный атрибут src для определения местоположения файла jQuery.

+0

Большое спасибо Мозазсам. Я сделал больше поиска в условном выражении JS, и мне потребовалось довольно много времени, прежде чем я узнал, что это еще одна стенограмма для оператора if, которого я раньше не видел. – Bobby

+0

Вас приветствуют :) –