Резервный вариант jQuery CDN не работает

Я использую решение из второго ответа на этот вопрос Лучший способ использовать jQuery, размещенный в Google, но вернуться к моей размещенной библиотеке в Google не удалось

В решении предлагается использовать следующий код, чтобы обеспечить резервную копию локальной копии jQuery в случае, если CDN Google не работает должным образом:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>if (!window.jQuery) { document.write('<script src="/path/jquery.1.11.1.min.js"><\/script>'); }
</script>

Я реализовал этот код и запустил его на своем локальном компьютере с установленным IIS. Он работает нормально, пока у меня есть подключение к Интернету. Если я отключу свое интернет-соединение, оно не вернется к моей локальной копии jQuery, и веб-приложение сломается (т. Е. Потеряет функциональность).

Есть ли новый способ делать запасные варианты или мой метод тестирования ошибочен?


person volume one    schedule 27.01.2015    source источник
comment
он вообще не внедряет резервный скрипт? если вы добавите «отладчик»; после проверки window.jQuery он попадает?   -  person atmd    schedule 27.01.2015
comment
Является ли ваша локальная копия jQuery той же версией, что и копия CDN? Что за ошибка в консоли? Если jQuery не загружен, это должно быть что-то вроде строк $ is undefined.   -  person Rory McCrossan    schedule 27.01.2015
comment
Вы уверены, что ваш локальный путь правильный?   -  person j08691    schedule 27.01.2015
comment
Моя локальная копия - та же версия. За исключением того, что имя моего файла jQuery jquery.1.11.1.min.js, а не просто jquery.min.js   -  person volume one    schedule 27.01.2015
comment
@A.Wolff А.Вольф нет, я использую 1.11.1. Я только что обновил свой вопрос.   -  person volume one    schedule 27.01.2015
comment
У вас нет ошибки на вкладке сети? Ваш локальный сервер работает?   -  person A. Wolff    schedule 27.01.2015
comment
@atmd ты имеешь в виду вот так? <script>if (!window.jQuery) { document.write('<script src="path/jquery/jquery-1.11.1.min.js"><\/script>'); debugger; }</script> Я пытался запустить это, но ничего не происходит в консоли firebug   -  person volume one    schedule 27.01.2015
comment
это предполагает, что window.jQuery не является нулевым, как насчет ‹script›if (window.jQuery) { console.log(window.jQuery); }‹/script› это вам что-нибудь дает?   -  person atmd    schedule 27.01.2015
comment
@A.Wolff A.Wolff Если я нажму на вкладку NET, там будет написано URL: GET jquery.min.js STATUS: Aborted DOMAIN: ajax.googleapis.com   -  person volume one    schedule 27.01.2015
comment
@RoryMcCrossan Я не вижу ошибок на вкладке консоли, связанных с $ или jquery   -  person volume one    schedule 27.01.2015
comment
@volumeone Но это относится к ссылке CDN, а не к локальной копии jQuery. Что касается вашей проблемы, вы вызываете ее из заголовка страницы или, по крайней мере, до того, как документ будет полностью отображен?   -  person A. Wolff    schedule 27.01.2015
comment
Я называю это в конце моей страницы. не в голове. если я удалю весь резервный код и просто заменю его своей локальной копией, тогда он тоже будет работать нормально.   -  person volume one    schedule 27.01.2015


Ответы (1)


Вы даже можете создать элемент script и добавить его голову или тело вверху, как показано ниже.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>

         <script>
            if(!window.jQuery){
              var script = document.createElement('script');
              script.src = 'jquery-1.11.2.min.js';
              document.head.appendChild(script);
            }    
         </script>

Я пробовал и офлайн, и онлайн, все работает :)

person Arkantos    schedule 27.01.2015