• 从cdn说起


    为什么要使用cdn

    雅虎军规有一条规则建议我们是用cdn。随便在网上搜索,可以找到使用的cdn的好处。

    再次强调第一条黄金定律,减少网页内容的下载时间。提高下载速度还可以通过CDN(内容分发网络)来提升。CDN通过部署在不同地区的服务器来提高客户的下载速度。如果你的网站上有大量的静态内容,世界各地的用户都在访问,我说的是youtube么?那CDN是必不可少的。事实上大多数互联网中的巨头们都有自己的CDN。我们自己的网站可以先通过免费的CDN供应商来分发网页资源。

    cdn不只是可以让用户去请求到离自己最近的服务器,提高速度,他还有以下几个好处。

    1. 防止本域名下的cookie在发送请求时被带过去。

    如果在network下看过页面的请求,可以发现,即使是请求一张jpg的图片,也会发送同域下的cookie过去。即便是不到几k的大小,用户量大了,也是一个巨大的消耗。不论是出于加载速度还是宽带的考虑,都应该避免这种情况。这也是静态cdn的域名不与主域名一致的原因之一。

    2. 防止过多请求被浏览器限制。

    浏览器同域名的请求是有最大并发限制的,一般是6个。具体可以参考这篇博客。这是cdn的域名不与主域名一致的原因之二。

    3. 方便缓存复用。

    如果是同一个静态文件,在多个页面被加载,如果在cdn上,被客户端缓存下来,那么再打开另一个页面,也不需要再去请求,可以直接使用缓存。

    说点别的

    说到了cdn,就想到了一些平时开发时约定俗成的习惯。

    dns预解析

    估计大部分同学都会有一个文件存满了诸如以下的内容:

    <meta http-equiv="x-dns-prefetch-control" content="on" />
    <link rel="dns-prefetch" href="http://img.jd.com" />
    <link rel="dns-prefetch" href="http://static.jd.com" />
    

    公司常常会有很多个静态资源的域名,有的时候,页面下的静态资源很可能是从许多个不同的域名下加载的。而域名解析为主机也需要时间,这时,如果我们使用dns预解析,可以加快资源的请求速度。
    这需要浏览器的支持,目前主流浏览器全部支持。

    合理利用缓存

    雅虎军规第一条————减少http请求。
    实际开发中,雪碧图、压缩捆绑css、js是我们常用的方式。但是在客户端能力越来越强的如今,其实不一定非要这么做。
    举个例子,如今客户端会缓存大部分静态资源在本地,加上并发请求的原因,多个文件反而能更好的利用客户端的能力。
    我认为,在项目上线时,尽可能找到复用较多的资源,单独拿出来,项目专享的js和css打包成一个文件,不失为一个更好的选择。

    常用的cdn网站

    bootCdn这个网站可以用来检索常用的前端项目。
    七牛也有这种服务。

    以上是我个人的一些理解,如有不对,敬请指教。

  • 相关阅读:
    【初入职场】工作一个月
    sql中更新数据库用到declare @a in
    Mac 下ll命令 command not found
    GLIBC_2.7升级
    PHP 5.5以后加速插件:Zend Opcache
    ssh的public key的使用
    apache Alias使用问题
    linux下telnet mysql的3306断口,提示Can't connect to MySQL server on localhost (110)
    知乎技术方案初探[转]
    JS刷新父窗口的几种方式
  • 原文地址:https://www.cnblogs.com/liuyongjia/p/7881400.html
Copyright © 2020-2023  润新知