zoukankan      html  css  js  c++  java
  • 高性能建站指南

    《高性能建站指南》上次读是六年前在大学的时候,昨天下午有空重新读了一遍,因此留下笔记,加上了一些自己的理解

    1、减少http请求

       图片地图,css sprites,内联图片,合并脚本和样式表

    2、使用内容发布网络

      cdn,缩短用户和服务器之间的接收距离,降低中央服务器的压力

    3、添加expires头

     能够在过期时间前运用缓存

      expires 定义静态资源的过期日期,缺点是要保持用户的系统时间和服务器的时间一致,

      max-age 优先级比expires高,定义还有多长时间过期,因此用户系统时间无不需要和服务器的时间一致

    为组件添加长久的expries头

    4、压缩组件(css、js)

    客户端发送获取资源的request会带上 Accept-Encoding:gzip,deflate,请求的response返回 Content-Encoding:gzip,

    主流浏览器都支持解压gzip压缩的文件,业界也主要使用gzip压缩文件,服务器压缩组件会增加服务器负载(细微得可以忽略?)

    对应有些浏览器不支持gzip压缩,服务器会告知代理需要获取accept-encoding请求头来决定是否发送压缩的文件,Vary:Accept-Encoding

    5、将样式表放在顶部

    浏览器逐步呈现,因此尽早加载构建好css Tree能更快构建好RenderTree,减少浏览器白屏时间增强用户体验

    @import引用的CSS会等到页面全部被下载完再被加载,不建议使用

    使用Link标签将样式表放在head中

    6、将脚本放在底部

    同步(以script标签)加载脚本会阻塞后续资源加载,并且在浏览器解析js时候,会阻塞renderTree的构建

    7、避免CSS表达式

    CSS表达式容易导致页面性能开销大,因此要避免用

    8、使用外部JavaScript和css

    内联的JavaScript和css虽然减少了http请求开销,但是会导致JavaScript和css无法利用浏览器缓存

    将JavaScript和css放到外部文件中

    9、减少DNS查找

    TTL(time-to-alive)告诉客户端对改记录保存多久,然而浏览器一般会忽略该值

    开启keep-alive(个人觉得keep-alive主要是通过重用tcp/ip通道减少tcp握手时间,对DNS查找无多大相关影响)

    通过使用keep-alive和较少域名来减少DNS查找

    10、精简JavaScript(JavaScript、css)

    对JavaScript源代码进行精简

    11、避免重定向

    寻找一种避免重定向方法

    12、删除重复脚本

    确保脚本只被包含一次

    13、配置Etag

    Etag即为文件的版本号,当文件超过了过期时间,浏览器会向服务器发起文件请求,若浏览器缓存文件的Etag和服务器一致,

    服务器返回304,浏览器则会继续使用本地缓存文件,

    不同的服务器对相同的文件的etag定义(inode-size-timestamp)是不同的,浏览器访问不同的服务器会导致相同的文件却无法通过Etag重用缓存

    建议配置Etag,只包含大小和时间戳或只有时间戳,或者移除Etag(last-modified头可以提供等价信息),移除Etag可以减小http头大小

    14、使用Ajax可缓存

    确保ajax请求遵守性能指导,尤其应具有长久的Expires头

  • 相关阅读:
    Sql server 2005 restore failed
    使用Windows Live Writer发布到cnblogs
    IE7 Tab problem
    转: 编码,charset,乱码,unicode,utf8与net简单释义(续)
    移动12.1号动感地带寻宝答案
    转: 各种 lightbox 实现
    Cannot connect windows 2003 server remotely by mstsc
    boost asio 网络编程案例简单改写
    读书笔记之《程序员的自我修养链接、装载与库》
    基于OpenSSL简单实现Shamir基于身份的数字签名算法
  • 原文地址:https://www.cnblogs.com/peace1/p/9207494.html
Copyright © 2011-2022 走看看