HTML5Boilerplate /包含库 - 回退?

时间:2011-09-16 07:31:03

标签: jquery-ui include jquery-mobile html5boilerplate

Iam目前想知道有关HTML5BP的一些事情......

我想包含JQuery mobile和JQuery UI,Iam不确定这是否正确:

<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 个答案:

答案 0 :(得分:1)

不确定你是否还在这里寻求帮助,但现在还可以。您的dns-prefetch是正确的,并且脚本加载基本上是正确的,有两个问题:

  1. 你只是在检查是否为你的后备加载了jQuery。这意味着如果jQuery正确加载,但由于某种原因,jQuery UI或Mobile不会对你的后备不起作用。不是完全可能,因为你从同一个地方装货但仍然......
  2. 您的订购是错误的。我想你应该在每次之后立即检查 - 只是不那么混乱。这也使得加载订单变得更加困难 - 如果首先没有加载jQuery,下面的移动检测很可能会出错......
  3. 我在下面修改了你的代码。请注意,移动检测是我自己的发明(在最后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 :(得分:0)

+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]-->