Резервные копии ресурса yepnope.js не работают - PullRequest
3 голосов
/ 22 апреля 2011

Я использовал код прямо из примеров на домашней странице yepnope:

  yepnope([{
    load: 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js',
    complete: function() {
      console.log('made it');
      if(!window.jQuery) { yepnope('/js/jquery.1.5.2-min.js'); }
    }
  }]);

Сегодня я работал без интернета и заметил, что моя локальная версия jQuery не загружается.

Поскольку я не подключен к Интернету, я предполагаю, что в приведенном выше примере версия Google CDN не будет загружена, будет вызвана функция complete, которая загрузит мою локальную копию. Похоже, что complete вообще не вызывается, потому что я не вижу "сделал это" в консоли.

Кроме того, я проверил, и путь к моей локальной копии правильный.

1 Ответ

5 голосов
/ 22 апреля 2011

РЕДАКТИРОВАТЬ на основе ваших комментариев и обновления вопроса:

Вы должны ждать, пока оно истечет. Полная функция не сработает сразу. Я только что скачал yepnope.js и запустил их demo / index.html со следующим кодом, добавленным прямо под их вызовом yepnope, который загружает jQuery внизу страницы:

yepnope({

  load     : "http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js",
  callback : function() { console.log("callback"); },
  complete : function() { console.log("complete"); }

});

Очевидно, что jQuery 1.6.2 не будет загружаться. Примерно через 10-15 секунд в консоли появляются сообщения «обратного вызова» и «завершения», поэтому я знаю, что их увольняют.

Alernative:

Если вы обнаружите, что вам нужна эта функциональность только для разработки онлайн / офлайн, вы можете попробовать то, что Html5Boilerplate использует, что я и предложил:

<!-- Grab Google CDN's jQuery, with a protocol relative URL; 
     fall back to local if necessary -->

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" 
        type="text/javascript"></script>

<script type="text/javascript">
    window.jQuery || document.write('<script src="js/jquery-1.5.2.js">\x3C/script>')
</script>

Вот что я лично использую:

    </form>

    <!-- Javascript at the bottom for fast page loading -->

    <!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if necessary -->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript"> window.jQuery || document.write('<script src="js/jquery-1.5.2.js">\x3C/script>')</script>

    <!-- Grab Google CDN's jQuery UI, with a protocol relative URL; fall back to local if necessary -->
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js" type="text/javascript"></script>
    <script type="text/javascript"> $.ui || document.write('<script src="js/jquery-ui-1.8.4.custom.min.js">\x3C/script>')</script>

    <!-- Scripts concatenated and minified via ant build script-->
    <script src="js/plugins.js" type="text/javascript"></script>
    <script src="js/script.js" type="text/javascript"></script>
    <!-- End scripts -->

</body>
</html>
...