CDN(内容分发网络)是一层构建在互联网基础上的智能虚拟网络,它通过在网络各处放置多个节点服务器,通过监测网络浏览者的网络流量,负荷情况,响应时间及节点连接状况,与用户的距离等综合因素,将用户的请求重新导向离用户最近或状况最好的服务节点上,以有效的规避网速和网络不稳定性带来的问题,从而实现更快,更稳定的内容传输。简言之:CDN能帮您省带宽,节流量,同时有效提升加载速度!
著名的yahoo web性能建议就有Use a Content Delivery Network的建议:从用户角度,通过在多个服务器上部署内容和资源能更快加载。
本文将简略罗列常用的几个CDN资源平台。
Google CDN
集合了最流行的几个开源JS库资源,包括jQuery,jQuery Ui,Dojo,MooTools,Prototype及大热的Angular及Web Font Loader等资源。基本稳定,偶尔抽风,实用。微软CDN
为了吸引更多开发人员和网站使用ASP.NET,微软为Microsoft AJAX和jQuery脚本提供了免费的CDN服务。提供了jQuery系列,jQ Validation,jQ Cycle,jQ DataTables及Ajax Control Toolkit,ASP.NET等资源。百度BAE CDN
百度的CDN稳定性较好,包括了几乎所有最流行的JS库。如:backbone,Bootstrap,ext-core,Highcharts,JSOAN,jQuery系列及webfont,zepto等等。新浪SAE CDN
新浪的SAE CDN的public resource加速服务,对常用js/css库在全国采用cdn加速,用户只在第一次访问时加载js库,以后就直接在本地缓存读了。提供的库同百度基本相当。开放静态文件 CDN
不仅仅是一个JS库CDN,而是提供了一个仓库,尽可能全面收录优秀的开源库,并免费为之提供 CDN 加速服务,使之有更好的访问速度和稳定的环境。同时,也提供开源库源接入的入口,让所有人都可以提交开源库,包括 JS、CSS、image 和 swf 等静态文件。一方面,提供了最新最流行的JS等库资源如angular,underscore,backbone,zepto,seajs等 ;另一方面,提供命令行工具鼓励程序猿自行提交和管理开源库。CDNJS
大名鼎鼎的JS资源库平台,号称Web 上最快的 JavaScript 资源库(啧啧),类似 Google CDN 和微软 CDN 服务,但是速度比这二者更加快。CDNJS 上提供了众多 JavaScript 库,你可以直接在网页上引用这些 JS 文件,实现用户浏览网站的最佳速度体验。同开放静态CDN一样,CDNJS也鼓励添加JS库到该站,只需要提交到 CDNJS 在 Github 上的项目即可。
其他CDN平台如jquery官方CDN也可供选择,不一一赘述了。
虽然CDN优点多多,但难免会突然抽风且短暂放弃治疗依然让人雷阿公,保险起见,建议做好CDN加载失败情况下载入本地JS库,如jQuery:
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script type="text/javascript">!window.jQuery && document.write('<script type="text/javascript" src="/js/libs/jquery-2.0.3.min.js"></script>')</script>
小贴士:如果引用多个script,Google提供了相应的办法,那就是google load。我们只需要在页面里引用一个js文件,就可以根据需要实时加载用到的js库了。首先在页头部分加入以下这行代码:
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
若需加载jQuery,可以这样使用:
google.load("jquery","1.3.2");
即可。