CDN可以更快地加载资源吗?

时间:2017-09-12 00:12:35

标签: javascript html css performance cdn

我今天正在为博客设置管理面板,我决定只使用CDN引导链接,而不是将文件本地保存在服务器上,因为这只是一些初步测试。我想我以后会把这些文件添加到服务器上以加快速度,但是当我想到这个时就是这样。

这个特殊的服务器是一个Bluehost共享服务器,速度莫名其妙。如果我使用CDN,它真的会更快吗?它会引人注目吗?

我知道StackOverflow喜欢具体的问题,所以让我们在这个特定场景中使用Bootstrap的CDN,因为它是一个流行的框架。

4 个答案:

答案 0 :(得分:5)

  

如果我使用CDN,它实际上会更快吗?

是。 CDN是一个很好的选择,不仅因为它们通常是非常快的服务器,而且因为当你使用流行的CDN时,你需要的源(例如boostrap,jQuery)可能已经被用户在另一个站点下载了,因此,将点击浏览器的缓存 - 然后尽可能快地加载。

  

它会引人注意吗?

这取决于当前服务器相对于CDN的速度。

Google DevTools有一个有用的工具。他们有一整段专门用于: Get Started with Analyzing Network Performance in Chrome DevTools 。它包括指导工具,帮助您模拟连接和设备,分析请求(找出哪些脚本需要更长时间加载或哪些样式表影响渲染)等等。

x

在上面的示例中,您可以看到资源实际下载的时间。该屏幕可在Chrome上使用( Command + Option + I [Mac]或 Control + Shift + I [Windows,Linux])。

答案 1 :(得分:1)

CDN的帮助有两种方式,

1>最靠近用户的服务器通常不受网络流量的全球等待影响。

2 - ;对于公共位置也有好处,因为资源可以从不同的网站缓存在浏览器上。 如果您为整个网站制作一个CSS文件,同一类型的效果,用户只下载一次并缓存它 ... CDN会跨域使用此文件。这使得第一次速度测试更接近刷新速度测试,因为资源在进入您的站点之前就在缓存中。

例如,Twitter使用bootstrap但遗憾的是它的实现很繁重,可能与您的使用冲突。毋庸置疑,使用twitter bootstrap的好处是任何使用twitter的人在点击你的页面时都没有等待加载资源的等待时间。

    <link rel="stylesheet"
 href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.0.4/css/bootstrap-combined.min.css" />
    <script 
src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.0.4/js/bootstrap.min.js"></script>

如果您通过推特宣传您的网站,那么这是一个考虑因素,因为这些访问者会看到更好的表现。 好像bootstrap是浏览器的原生功能。

Bootstrap建议使用此CDN。

<link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" 
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">

除非有理由不这样做,否则我会坚持他们对CDN的推荐。它使每个人的网站更快。

如果您使用CDN作为公共图书馆的资源,您将失去第二个好处。

3&GT; ISP也可以缓存这些公共资源URL,从而缩短与用户的距离。他们这样做是为了节省带宽,这会花费他们的钱。

答案 2 :(得分:0)

快速回答:在本地加载资产总是更快,因为您不会依赖网络或CDN服务器。服务器越慢,它可能比通过网络下载库更快。

答案 3 :(得分:0)

没有。决不。您的生产代码应该只在一个文件中minified

问题是启动HTTP请求是时间上的一件昂贵的事情。每个<script>都会启动另一个HTTP会话。

出于开发目的,它并不重要;但在生产中,它们都挤在一个服务缩小的包装中。例如,请参阅Google.com的网络源代码并搜索<script src=,并注意有0次出现。