【问题标题】:Fallback for jQuery UI from google CDN来自谷歌 CDN 的 jQuery UI 后备
【发布时间】:2011-02-16 08:18:19
【问题描述】:

如果从 Google CDN 抓取失败,Html5 Boilerplate 使用以下技巧回退到本地存储的 JQuery:

<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script>

你将如何实现这个技巧来为 jQuery UI 执行相同的技巧?

【问题讨论】:

    标签: jquery performance cdn


    【解决方案1】:
    <script type="text/javascript">!window.jQuery.ui && document.write(unescape('%3Cscript src="path to jquery UI lib'))</script>
    

    在 jQuery 本身的回退之后执行此操作。

    或者(如果你不喜欢!)

    <script type="text/javascript">(window.jQuery.ui === /* notice the === */ undefined) && document.write( /* ... */)</script>
    

    Detecting an undefined object property

    【讨论】:

    • 所以这对任何插件都应该以同样的方式工作。好东西!
    • 应该的。如果你不喜欢!您还可以测试 window.jQuery.ui 是否未定义。
    【解决方案2】:

    我是这样做的:

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script>window.jQuery || document.write('<script src="/static/js/jquery.min.js"><\/script>')</script>
    
    
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
    <script>window.jQuery.ui || document.write('<script src="/static/js/jquery-ui.min.js"><\/script>')</script>
    

    【讨论】:

      【解决方案3】:

      使用 ASP.NET Web 优化框架

      使用捆绑包时更容易做到这一点。

      从 NuGet 获取 Microsoft.AspNet.Web.Optimization 包。 现在,在您的 BundleConfig 中,您可以设置您的捆绑包,不仅包括 CdnPath,还包括 CdnFallbackExpression:

      public static void RegisterBundles(BundleCollection bundles)
      {
          bundles.UseCdn = true;
          BundleTable.EnableOptimizations = true;     
          var jquery = new ScriptBundle("~/bundles/jquery", "//ajax.aspnetcdn.com/ajax/jquery/jquery-2.0.0.min.js").Include(
                  "~/Scripts/jquery-{version}.js");
          jquery.CdnFallbackExpression = "window.jQuery";
          bundles.Add(jquery);
          //...
      }
      

      【讨论】:

        猜你喜欢
        • 2011-09-26
        • 1970-01-01
        • 2011-07-09
        • 2011-09-19
        • 2011-03-01
        • 2012-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多