0

我目前想知道一些关于 HTML5BP 的事情......

我想包括 JQuery 移动和 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" />

谢谢!

4

2 回答 2

1

不确定您是否仍在此处寻求帮助,但可以。您的 dns-prefetch 是正确的,并且脚本加载基本上是正确的,但存在两个问题:

  1. 您只需要检查是否为您的后备加载了 jQuery。这意味着如果 jQuery 正确加载,但由于某种原因,jQuery UI 或 Mobile 没有您的后备,那么这些将无法正常工作。不太可能,因为您从同一个地方加载,但仍然......
  2. imo,您的订购是错误的。我认为您应该在每次检查后立即检查 - 只是少一些混乱。这也使得加载顺序变得更难 - 如果没有首先加载 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-->
于 2011-10-11T10:26:20.587 回答
0

+1英博

我通常还为 jQuery 版本做一个条件,以减轻对普通浏览器的翻页并将旧的 jQuery 发送给哑弹。

<!--[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]-->
于 2014-02-14T00:32:32.803 回答