包含两个不同调用脚本的原因是什么?
我使用HTML5样板和jQuery声明两次在HTML页面是这样的:包含两个不同调用脚本的原因是什么?
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.2.min.js"><\/script>')</script>
背后有什么,包括JavaScript文件这种方式的原因是什么?
它似乎是唯一的原因是从本地服务器加载jQuery库,如果它无法从Google CDN访问。
他们的原因html5 Boilerplate包含脚本的方式是因为它试图“如果从Google CDN无法访问,则从本地服务器加载jQuery库”。 =)
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
这将尝试加载jQuery库的协议更少版本
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.2.min.js"><\/script>')</script>
这将加载jQuery库的本地版本,如果谷歌托管的版本没有装载正确(无法访问,网站关闭等),因此检查window.jQuery
。如果window.jQuery
不是true
那么它将执行document.write
是的,它检查是否加载jQuery,如果没有,然后从自己的服务器加载它。
//
仅用于使其兼容HTTP和HTTPS。
+1作为澄清'//'我不知道! – enam 2012-01-03 18:45:35
原因是故障回复。第一行代码
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
如您所说从Google CDN中提取jQuery库。然后下面一行:
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.2.min.js"><\/script>')</script>
将验证jQuery库被加载(从谷歌CDN),如果没有,那么获取的jQuery的本地副本。
从Google CDN中加载jQuery可能比从本地服务器加载jQuery要快得多,并且它可以被缓存,因此用户可能已经从另一个网站获得了它的缓存副本。
该检查确保它已加载,否则如果失败,请从本地服务器加载它。
如果你的问题是“为什么传输协议没有指定?”,那么答案是“它不必被指定”。这使您可以使用相同的脚本引用,不管连接是否使用安全套接字,也不会让用户收到有关加密/未加密内容的警告。
如果问题是“这是什么线?:做|| window.jQuery文件撰写(‘</SCRIPT>’)”,那么答案是,我们使用的是(或多或少)三元语句来测试jQuery对象,如果未加载jQuery库,它将评估为“false”值,如果是,则此测试将触发该语句的后半部分,从而导致加载本地jQuery。
HTH。
我不太确定你在问什么。你已经给出了你的问题的答案... – lonesomeday 2012-01-03 18:15:34
如果你没有互联网连接 – 2012-01-03 18:29:01