关于前端性能的文章:
http://www.cnblogs.com/fnng/archive/2011/09/19/2181894.html
web应用的前端性能响应时间指浏览器的页面加载时间。浏览器的页面加载时间包括对html的解析,对页面图片及css等文件的获取和加载、客户端脚本的执行时间以及对你页面进行展现所花费的时间。这个与并发用户量的大小并没有直接的关系,主要关注:如何提高浏览器下载和执行资源的并发性,如何让浏览器尽快开始渲染页面,如何让浏览器尽可能充分的利用缓存。在yahoo中,到少50个团队通过纯粹的前端性能相关的技巧,将最终用户的响应时间减少了25%以上。
在了解web前端性能时,我们应该知道http协议。
http协议采用请求/响应模型,客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本等信息,服务器以一个状态行作为响应,响应的内容包括消息协议的版本、成功或者错误编码加上包含服务器的信息、实体元信息等内容。该协议是一种非面向连接的协议,每个http请求都是独立的。
请求报文的格式:请求行 | 通用信息头 | 请求头 | 实体头 | 报文主体 Method Request-URI HTTP-versionCRIF
响应报文的格式:状态行 | 通用信息头 | 响应头 | 实体头 | 报文主体
响应报文的状态码如下:
1XX:信息响应类,表示接收到请求并继续处理
2XX:处理成功响应类,表示动作被成功接收、理解和接收
3XX:重定向响应类,表示为了完成指定的动作,必须接收进一步处理
4XX:客户端错误,表示客户请求包含语法错误或不能正确的执行
5XX:服务端错误,表示服务器不能正确执行一个正确的请求
与前端性能相关的头信息:
1、accept-encoding:告诉服务器所接受的页面的编码方式,gzip使用gzip压缩,deflate不压缩,压缩可以减少下载所需的时间。
2、connection:因为HTTP是费面向连接的,无状态的协议,每一个HTTP请求都会经过“建立连接--请求页面或资源--获得资源--断开连接”的过程。对于小的资源可能建立连接的时间都会超过对资源的处理时间,为了减少时间引入了持久连接。当浏览器和服务器约定好后,当某个资源传输完成后并不立即断开连接,而是等待一段时间,在这段时间内若传输其他的资源就复用该连接,否则就关闭。当值为keep-alive时有持久连接。
3、expires:用于只是返回数据的到期时间。到期时间之前都是从缓存处直接获取相应的资源,之后才会向服务器发送请求获取。
提高前端性能的方法:
1、减少页面加载的时间,
2、减少网络时间:CDN技术,DNS缓存技术,减少文件的尺寸
3、减少发送的请求量:利用浏览器缓存
4、让页面尽早的开始显示
对于前段性能测试的理解:
由于本人之前有两三个月的时间接触了前端,对于前端的知识点比较熟悉,在这方面理解起来不是很困难,对于http协议,用户响应请求的过程都熟悉,但是那个时候并没有详细的考虑到页面的加载时间问题,只是想着将页面呈现出来,而忽略了对于响应时间的要求。由于自己都是在本机上实现的,所以每次想看结果的时候都要等很久,这就是没有使用性能的思想,去减少页面的加载时间,没有考虑周全。现在对于这方面有了更深的理解。