Javascript 从Google或本地加载jQuery(如果不在线)

Javascript 从Google或本地加载jQuery(如果不在线),javascript,jquery,html,css,asp.net-mvc,Javascript,Jquery,Html,Css,Asp.net Mvc,现在,我的代码中有以下链接: <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script> 等等 我想使用google.com缓存的副本。我听说谷歌是最好的来源,但请纠正我,如果我错了 无论如何,我是否有可能对我的应用程序进行编码,这样它就可以使用来自谷歌的代码(如果有的话)和本地的代码(如果没有的话)。仅供参考,我正在使用Microsoft

现在,我的代码中有以下链接:

<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>

等等

我想使用google.com缓存的副本。我听说谷歌是最好的来源,但请纠正我,如果我错了

无论如何,我是否有可能对我的应用程序进行编码,这样它就可以使用来自谷歌的代码(如果有的话)和本地的代码(如果没有的话)。仅供参考,我正在使用Microsoft MVC3和Msoft云服务器


谢谢

当然可以,看看他们是怎么做的

如果您查看GitHub回购协议中的

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

window.jQuery | | document.write('\x3C/script>'))
注意:在上面的代码片段中,X.X.X应替换为您正在使用的jQuery版本号(例如,1.8.2

它是如何工作的?
  • 首先,试图获取CDN版本(上面使用的是谷歌的CDN url,当然你可以链接到任何你喜欢的来源)
  • 紧接着,我们检查
    jQuery
    全局对象
  • 如果
    jQuery
    不存在,那么显而易见的假设是我们没有设法从CDN获取代码,因此我们
    document.write
    script标记从本地源获取副本
  • 
    window.jQuery | | document.write('\x3C/script>'))
    
    此处进行广泛讨论:根据您的连接“不在线”的方式,由于超时,可能需要很长时间。@虽然我同意性能不会很好,但此回退是针对谷歌CDN无法为我们提供服务的情况。不仅大多数人都会有一个缓存副本——那些没有缓存的人会在网上看到很多丑陋/破损的网站——而你的(有了这个回退)也会有一点点slow@beardtwizzle,这几天有点慢。我在离线状态下做了大量的开发工作,而最新的浏览器(至少是Firefox)似乎比以前等待这些请求的时间要长得多;同时,您的脚本正在被阻止。请查看您是否对\x3C:-)感到疑惑,因为StackExchange没有使用此回退方法。对于任何防火墙将加载googleapis.com StackExchange页面但登录和反馈被禁用的地方。
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <script>window.jQuery || document.write('<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")">\x3C/script>')</script>