zoukankan      html  css  js  c++  java
  • 关于性能优化的法则

    规则1:减少HTTP请求

    我们只有20%的时间花在所请求的HTML页面上,剩下的80%是发生在浏览器前端,特别是页面和页面中各种元素(图片、CSS、Javascript、 flash…)的下载之上。

    图片技术,CSSsprite,内联图片和脚本,样式表的合并,这些技术既可以减少HTTP请求,又可以避免在性能和设计之间进行艰难的选择。

    规则2:使用内容发布网络

    内容发布网络(CDN)是一组分布在多个不同地理位置的web服务器,用于更加有效的向用户发布内容。

    除了缩短时间之外,CDN还可以带来其他优势。他们的服务包括备份,扩展存储能力和进行缓存。CDN还有助于缓和web流量峰值压力,比如在获取天气或股市新闻,浏览流行的体育或娱乐事件时。

    规则3:增加Expires header

    现在的WEB页面都包含了大量的组件,并且其数量在不断增长,页面的初访者会进行很多的HTTP请求,但通过使用一个长久的Expires头,让这些组件被缓存,这会在后续的页面浏览中避免不必要的HTTP请求。长久的Expires头常用于图片,但应该用在所有的组件上,包括脚本,样式表。

    规则4:压缩组件

    如果http产生的响应包很小,传输时间就会很少,因为只需要很小的包从服务器传递到客户端。压缩响应包,并由此减少网络的响应时间,这是减少页面大小的最简单的技术,但影响是最大的。

    规则5:将样式表放在顶部

    规则6:将脚本放在底部

    规则7:避免CSS表达式

    表达式的问题在于对其求职的频率比人们期望的要高。它们不只在页面呈现和大小改变时求值,当页面滚动,甚至用户鼠标在页面上移动过时都要求值。

    规则8:使用外部Javascript和css

    规则9:减少DNS查找

    当客户端的DNS缓存为空时,DNS查找的数量与web页面中唯一的主机名数量相等。也就是说,减少唯一的主机名的数量就可以减少DNS查找的数量。减少唯一的主机名数量会潜在的减少页面中并行下载的数量。避免DNS查找降低了响应时间,但减少并下载可能会增加响应时间。

    规则10:精简JavaScript

    精简是从代码中移除不必要的字符以减少其大小,进而改善加载时间的实践。在代码被精简后,所有的注释以及不必要的空白字符都将被移除,这可以改善响应时间的效率

    规则11:避免重定向
        除了在header中人为的重定向之外,网页重定向常在不经意间发生,被重定向的内容将不会使用浏览器的缓存。比如用户在访问www.xxx.com,服务器会通过301转向到www.xxx.com/,在后面加了一个“/”。如果服务器的配置不好,这也会给服务器带来额外的负担。通过配置apache的 alias或使用mod_rewrite模块等方法,可以避免不必要的重定向。

    规则12 :移除重复脚本

    规则13:配置ETag

    使用gzip来压缩网页中的静态内容,能够显著减少用户访问网页时的等待时间(据说可达到60%)。主流的web服务器都支持或提供gzip压缩,如果使用apache服务器,只需要在配置文件中开启 mod_gzip(apache1.x)或mod_deflate(apache2.x)即可。凡是静态的页面,使用gzip压缩都能够显著提高服务器效率并减少带宽支出,注意图片内容本身已经是压缩格式了,务必不要再进行压缩。

    规则14:使Ajax可缓存

  • 相关阅读:
    elasticsearch 中的Multi Match Query
    activiti 流程部署的各种方式
    elasticsearch 嵌套对象之嵌套类型
    elasticsearch Java High Level REST 相关操作封装
    elasticsearch 字段数据类型
    ubuntu 安装 docker
    elasticsearch 通过HTTP RESTful API 操作数据
    facenet 人脸识别(二)——创建人脸库搭建人脸识别系统
    POJ 3093 Margaritas(Kind of wine) on the River Walk (背包方案统计)
    墨卡托投影, GPS 坐标转像素, GPS 坐标转距离
  • 原文地址:https://www.cnblogs.com/hongxuejiao/p/5005858.html
Copyright © 2011-2022 走看看