尝试在Google(或其他Google托管的lib)上加载托管jQuery的好方法,但如果Google尝试失败,请加载我的jQuery副本?
我不是说谷歌是片状的.有些情况下谷歌副本被封锁(例如在伊朗).
我会设置一个计时器并检查jQuery对象吗?
这两份副本的危险是什么?
并不是真的在寻找"只使用谷歌"或"只使用自己的"等答案.我理解这些论点.我也理解用户可能会缓存Google版本.我正在考虑一般的云回退.
编辑:这部分补充......
由于Google建议使用google.load加载ajax库,并在完成后执行回调,我想知道这是否是序列化此问题的关键.
我知道这听起来有点疯狂.我只想弄清楚它是否可以以可靠的方式完成.
更新:jQuery现在托管在微软的CDN上.
我看到以下HTML代码用于从内容交付网络加载jQuery,但如果CDN不可用(例如在Modernizr文档中),则回退到本地副本:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.1.min.js">\x3C/script>')</script>
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么语句中的最后一个<字符document.write()用转义序列替换\x3C?<是一个安全的JavaScript字符,甚至在同一个字符串中使用,所以为什么要在那里逃避?是否只是为了防止错误的浏览器实现认为</script>字符串内部是真正的脚本结束标记?如果有的话,那里真的有任何浏览器会失败吗?
作为一个后续问题,我也看到了一个变体unescape()(在这个答案中给出)在野外也有几次.是否有一个原因,为什么这个版本似乎总是代替所有的<和>人物?