标签:从服务器 亚马逊 提升性能 网络 microsoft 连接 编程 扩展 分配
最近在学bootstrap,在知乎上搜索bootstrap看到有人问bootstrap基础包体积较大,对性能影响会不会很大,看到两种方法来减少对性能的影响:
我还没有学过LESS和Sass,所以第一种方法我还不会,不过CDN这个概念我以前看“JavaScript DOM 编程艺术”这本书就接触过:
内容分发网络(CDN, Content Delevery Network)可以解决分布共享库的问题。CDN就是一个由服务器构成的网络,这个网络的用途就是分散存储一些公共的内容。CDN中的每台服务器都包含库的一份副本,这些服务器分布在世界上不同的国家和地区,以便达到利用带宽和加快下载的目的。浏览器访问库的时候使用一个公共的URL,而CDN的底层则通过地理位置最近、速度最快的服务器提供相应的文件,从而解决了整个系统中的瓶颈问题。
知乎上这个问题的一个回答者分享了一篇文章:“7 Reasons to use a Content Delivery Network”,我Google了一下这篇文章,发现同一个作者还写了另一篇文章:“7 Reasons NOT to use a Content Delivery Network”。
那么这个CDN,到底我们用还是不用呢?我读了一下这两篇文章,在这里翻译总结一下:
用CDN的七个理由
不用CDN的七个理由
你到底要不要用CDN呢
看完了作者的上面两篇文章,我基本对CDN的好与不好有了初步的认识,接着我又看到作者写了第三篇文章:“Should You Use a Content Delivery Network?”那我们到底该不该用CDN呢?
几种明确不该用CDN的情况:
CDN对低流量的小网站性能提升并不明显,如果没有需要高带宽的视频、音频文件,把你的文件放在一起可能还更简单。
对流量高的网站,CDN可以大大提升性能,但假如你的用户以移动设备为主,可能自己优化过的小文件比CDN上的大文件要下载和执行的更快。
在实际中通过JavaScript搜集用户分别使用CDN文件和本地服务器文件时加载页面的速度,以决定一段时间内是选择CDN还是本地文件。
对于重要的文件,最好还是提供本地文件的冗余,以应对CDN文件不可用的情况。以jquery为例:
<script src="https://ajax.googleapis.com/ajax/libs/jquery1.4.3/jquery.min.js"></script>
<script>!window.jQuery && document.write("<script src=\"scripts/jquery-1.4.3.min.js\">" + "<\/scrript>")
这里通过判断window.jquery全局对象是否存在来判断jQuery是否通过CDN加载成功,不成功就通过document.write
方法来加载本地的jQuery文件,注意这里用到了转义字符‘\’避免浏览器将document.write
方法内的“</script>
”当成了结束标签。
总结
看到这里,我想你也觉得CDN是好的,只是要把它用好,还是应该遵循前面讲到的一些原则,简单的说,在实践中,一些流行的库文件和字体文件使用CDN是好的,对于大型网站来说,使用私有CDN也能极大提升速度和降低成本,但如果你的应用对安全、隐私和可靠性要求较高,那就要在CDN的性能提升和安全考量之间做一下权衡了。
参考资料
标签:从服务器 亚马逊 提升性能 网络 microsoft 连接 编程 扩展 分配
原文地址:http://www.cnblogs.com/xingzc/p/5986352.html