美文网首页
《高性能网站建设指南》备忘笔记——14条优化法则

《高性能网站建设指南》备忘笔记——14条优化法则

作者: 喵小鲸2号 | 来源:发表于2017-08-18 14:26 被阅读0次
    规则1——减少HTTP请求
    1. 合并图片,合并样式表,合并脚本
    规则2——使用cdn发布静态资源
    规则3——为问价添加长久的expires头 || 设置cache-control的max-age值
    • web服务器通过Expries头来告诉web客户端它可以使用一个文件的当前缓存,直到指定的时间为止。expries头使用一个特定时间,它要求服务器的时间和客户端的时间严格同步,另外过期日期需要经常检查,一旦到期,则需要重新设置。
    • cache-control使用max-age指令指定文件被缓存多久,它以秒为单位定义了一个更新时间。一个长久的max-age头可以将刷新时间设置为未来10年。(只支持http1.1以上的浏览器)
    • 最佳实践:同时指定expries头和max-age值,如果两者同时出现,HTTP规范规定max-age指令将重写expries头。
    规则4——压缩文件、压缩脚本样式表、图片等
    • gzip是目前最流行和最有效的压缩方法
    • 用构建工具gulp压缩脚本(gulp-uglify)和样式表(gulp-minify-css) 图片用tinypng这个网站压缩,也用构建工具(gulp-imagemin)压缩图片,但是压缩效果不佳
    规则5——将样式表放在文档顶部
    • 使用link标签的方式将样式表放在文档的head中
    • 尽量不要使用@import的方式引用样式表,因为这种方式引用的样式表会在文件加载完毕后才会下载,也就是导致页面下载的无序性
    规则6——将脚本放在文档底部
    • 脚本会阻塞页面的呈现,即dom树的渲染
    • 浏览器会并行下载文件,HTTP1.1规范建议浏览器从每个主机名并行地下载两个文件,所以如果一个web页面平均的将其文件分别放在两个主机名下面,整体响应时间了可以减少约一半。
    • 脚本会阻塞并行下载,原因:①脚本可能使用document.write()来修改页面内容,因此浏览器会等待,以确保页面能够恰当的布局;②为了保证脚本能够按照正确的顺序执行,如果并行下载多个脚本,就无法保证响应时按照特定的顺序到达浏览器的,例如,如果后面的脚本比前面的小,就可能先执行,如果这两个脚本存在依赖关系,就会出错。
    • 除了放在底部,还可以添加defer和async属性来阻止页面提前加载,使用这两个属性时,脚本中不能调用document.write()方法
    • 如果一个script加了defer属性,即使放在head中,它也会在html页面解析完毕之后再去执行,也就类似于把这个script放到了页面底部。js的加载不会阻塞页面的渲染和资源的加载,同时defer还会按照原来的js顺序执行,如果后面有依赖关系也可以放心使用
    • async是HTML5中新增的属性,它的作用是能够异步的加载和执行脚本,不因为加载脚本而阻塞页面的加载,不过它是加载完成后就立即执行,如果脚本之间有依赖关系则有可能会发生错误
    规则7——避免CSS表达式
    • 可以使用一次性表达式和事件处理程序来代替CSS表达式
    规则8——将javscript和css文件放置在外部文件中
    规则9——减少DNS查找
    • 可以通过Keep-Alive和较少的域名来减少DNS查找
    规则10——对javascript源代码进行精简
    规则11——避免重定向(redirect)
    规则12——移除重复脚本
    规则13——配置或者移除ETag
    规则14——使用ajax可缓存

    相关文章

      网友评论

          本文标题:《高性能网站建设指南》备忘笔记——14条优化法则

          本文链接:https://www.haomeiwen.com/subject/qnbswttx.html