HTML5Boilerplate / include библиотеки - запасной вариант?
Я в настоящее время задаюсь вопросом некоторые вещи о HTML5BP...
Я хочу включить JQuery Mobile и JQuery UI, и я не уверен, что это правильный путь:
<body>
<!-- scripts and fallback to local -->
<script src="//code.jquery.com/jquery.min.js"></script>
<script src="//code.jquery.com/mobile/latest/jquery.mobile.js"></script>
<script src="//code.jquery.com/ui/1.8.16/jquery-ui.min.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.2.min.js"><\/script>')</script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-ui.min.js"><\/script>')</script>
<script>window.jQuery || document.write('<script src="js/libs/jquery.mobile.min.js"><\/script>')</script>
<!-- end scripts and fallback to local -->
<!-- scripts concatenated and minified via ant build script-->
<script src="js/plugins.js"></script>
<script src="js/script.js"></script>
<!-- end scripts concatenated and minified via ant build script-->
Причина, по которой я не уверен, заключается в том, что когда я за прокси-сервером и не имею доступа к Интернету, я ожидаю, что локальный резерв будет работать, но это не так. Я получаю ошибку аутентификации и страница не загружается.
Это способ как правильно его включить?
В голове я предпочитаю:
<link rel="dns-prefetch" href="//code.jquery.com" />
Спасибо!
2 ответа
Не уверен, если вы все еще ищете помощь здесь, но здесь идет. Ваша dns-prefetch верна, и загрузка скрипта в основном корректна с двумя проблемами:
- Вы только проверяете, загружен ли jQuery для ваших запасных вариантов. Это означает, что если jQuery загружается правильно, но по какой-то причине jQuery UI или Mobile не будут работать, ваши запасные варианты не будут работать. Не совсем вероятно, так как ваша загрузка из того же места, но все же...
- Ваш заказ, по-моему, неверен. Я думаю, что вы должны проверить сразу после каждого - просто менее запутанным. Также усложняется порядок загрузки - мобильное обнаружение ниже, скорее всего, будет ошибкой, если jQuery не будет загружен первым...
Я изменил ваш код ниже. Обратите внимание, что мобильное обнаружение - это мое собственное изобретение (за последние 5 минут). Это работает, но я не могу гарантировать потрясающую крутость!
<body>
<!-- scripts and fallback to local -->
<script src="//code.jquery.com/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.2.min.js"><\/script>')</script>
<script src="//code.jquery.com/ui/1.8.16/jquery-ui.min.js"></script>
<script>window.jQuery.ui || document.write('<script src="js/libs/jquery-ui.min.js"><\/script>')</script>
<script src="//code.jquery.com/mobile/latest/jquery.mobile.js"></script>
<script>window.$.mobile || document.write('<script src="js/libs/jquery.mobile.min.js"><\/script>')</script>
<!-- end scripts and fallback to local -->
<!-- scripts concatenated and minified via ant build script-->
<script src="js/plugins.js"></script>
<script src="js/script.js"></script>
<!-- end scripts concatenated and minified via ant build script-->
+1 lnrbob
Я также обычно делаю условия для версий jQuery, чтобы облегчить просмотр страниц для обычных браузеров и отправить старый jQuery в duds.
<!--[if (gte IE 9) | !(IE)]><!-->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script>if (!!window.jQuery && jQuery().jquery !== '2.0.3') document.write('<script src="<?= ASSETS ?>js/jquery.2.0.3.min.js" type="text/javascript"><\/script>')</script>
<!--<![endif]-->
<!--[if lte IE 8]>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>if (!!window.jQuery && jQuery().jquery !== '1.10.2') document.write('<script src="<?= ASSETS ?>js/jquery.1.10.2.min.js" type="text/javascript"><\/script>')</script>
<![endif]-->