如果没有加载,从外部源加载jQuery

Tho*_*hom 7 javascript jquery document.write

从源码加载jQuery

我喜欢做的是删除我的本地jquery.js并将其托管在其他地方.但是,如果谷歌垮台怎么办?因此,如果jQuery"仍未"加载,那么让我们编写一个使用其他源代码的后备代码...

我做了这个测试用例,但它似乎不起作用,也许有人可以帮助我:

http://jsfiddle.net/RBz4n

ban*_*ter 7

这很好用(来自HTML5 Boilerplate):

<!-- Grab Google CDN's jQuery. fall back to local if necessary -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script>
Run Code Online (Sandbox Code Playgroud)


Rob*_*nik 1

问题

如果您使用 Firebug 并查看 jQuery 的加载位置,您可以看到 Google 已成功加载它。为什么它似乎不起作用?因为请求是异步的,并且当您的脚本同步运行时,它会在加载第一个脚本之前执行所有步骤。

所以:

  1. jQuery 不存在。
  2. 添加 SCRIPT 元素以从 Google 加载(浏览器发送请求并继续执行脚本)
  3. jQuery 不存在 添加另一个源
  4. ...

等等等等

解决方案

您应该做的是附加到onLoad脚本加载元素的事件,并在加载后检查 jQuery。

与向互联网上的某个服务器发送请求并获取结果进行处理相比,脚本的执行速度快如闪电。

补充笔记

正如我所读到的,使用这种技术检测 404 会遇到问题。建议的方法是使用 Ajax (XHR),然后附加脚本元素并向其中添加收到的内容。对于所有浏览器来说,这将是最可靠的方法。