像是Google、Microsoft都有提供像jQuery或是其他一些好用的JavaScript Library的CDN机制,让世界各地的人,在存取这些重複率极高的档案时,速度可以更快。
虽然CDN原则上是不会有存取不到的问题,但是天有不测风云,被闪电打中的机率也不是没有,所以使用时,如果有一个failover的机制,在CDN失败的时候,转读local端的档案,这样就万无一失了。
做法很简单,以jquery自家网站的作法来说明:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script><script>!window.jQuery && document.write('<script src="http://code.jquery.com/jquery-1.4.2.min.js"><\/script>');</script>
第1行使用的是google cdn的网址
而一旦第1行执行失败,第2行 !window.jQuery的结果就会是true,然后就会去执行documwnt.write的内容,也就是写入自家网站host的jquery。
除了jquery之外,其他CDN host的JS档都可以如法泡製。
同场加映一个不错的JS CDN网站:http://www.cdnjs.com/,这里专注的是一些大型CDN较不放置的一些JS专案,在开发阶段拿来用还不错。如果要用上production,上面的作法好像就更实用了 :p