CDN

简介

CDN的全称是Content Delivery Network, 即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络”边缘”,使用户可以就近取得所需的内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

可以把CDN简单的描述为:内容分发,解决网络拥挤和提供网站相应速度。

检测JS脚本是否加载成功

以在脚本代码后添加代码判断该类型或变量是否存在,如果不存证明CDN加载失败,那么我们的程序就应该加载本地脚本,下面我们以加载jQuery库为例,具体实现如下:

<!-- Adds google cdn reference -->
<script src="http://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>

<!-- Cdn fail refers to local library -->
<script>window.jQuery ||  document.write("script src='js/jquery-2.0.0.min.js' type='text/javascript'");</script>

上面,我们使用了“||”运算符判断window.jQuery是否为未定义类型,如果window.jQuery未定义执行后面的代码加载本地jQuery脚本,HTML5 Boilerplate就使用以上的方法处理CDN内容加载失败的情况。

协议省略

当我们在常规的Http页面中通过Https方式来引用Google CDN的jQuery库将导致缓存性能下降,我们应该尽量避免在Http页面中引用不必要的Https内容。

在RFC3986中的第4.2节规定合法的URL省略了协议(Http或Http)还是合法的,当一个URL的协议被省略时,浏览器将使用基本的文档的协议,通过这种方式,我们可以更加灵活地指定URL地址。所以我们可以通过以下的方式引用jQuery库。

<script src="//cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>

“协议省略”的网址是引用第三方内容的最好的方式,它可以通过Http或Https引用。

使用CDN的好处

  1. 加快速度(CDN提供方的主机性能更好)
  2. 有机会利用缓存避免重复下载脚本
  3. CDN能提供本地的数据中心,令用户就近下载
  4. 能够灵活的控制脚本库的版本
  5. CDN能够分配负载,提高网站性能

使用CDN的隐患

  1. 提供的库文件未经过优化,不如经过站长自己优化过的库文件更小
  2. 可能存在着被屏蔽的可能(比如谷歌)
  3. 存在出故障的可能,需要提供备用方案
  4. 远程从CDN请求文件时,访问来源信息也会被发送,存在安全隐患(但是使用https协议可以避免这一问题)
  5. 存在着隐私被CDN提供者窃取的可能性

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值