Web前端性能优化

一般说来Web前端指网站业务逻辑之前的部分,包括浏览器加载、网站视图模型、图片服务、CDN服务等。主要优化手段有优化浏览器访问、使用反向代理、CDN等。

浏览器访问优化

减少http请求

HTTP协议是无状态的协议,意味着每次HTTP请求都需要建立通信链路、进行数据传输,而在服务器端,每个HTTP都需要启动独立的线程去处理。

减少HTTP的主要手段是:

  1. 合并CSS

  2. 合并JavaScript

  3. 合并图片

  1. 使用浏览器缓存

对于一个网站来说,CSSJavaScriptLogo、图标这些静态资源文件更新的频率都比较低,而这些文件又几乎是每次HTTP请求都需要的,如果将这些文件缓存在浏览器中,可以极好地改善性能。通过header函数设置HTTP头中Cache-ControlExpires的属性,可设定浏览器缓存,缓存时间可以是数天、甚至是几个月。

例子:

header('Cache-Control: max-age=3600*24');

缓存1天,表示最大生存期是1天,超过1天浏览器必须去服务器重新读取,这个时间是从用户第一次读取页面时开始计时的


在某些时候,静态资源文件变化需要及时应用到客户端浏览器,这种情况,可通过改变文件名或者给文件名加上版本实现。CSS放在页面最上面,JavaScript放在页面最下面

浏览器会在下载完 全部CSS之后才会对整个页面进行渲染,因此最好的做法是将CSS放在页面最上面,让浏览器尽快下载CSSJavaScript则相反,浏览器在加载JavaScript后立即执行,有可能会阻塞整个页面,造成页面显示缓慢,因此JavaScript最好放在页面最下面。


  1. 减少COOKIE传输

COOKIE包含在每次请求和响应中,太大的Cookie会严重影响数据传输,因此要尽量减少Cookie中传输的数据量。



CDN加速

CDN(Content Distribute Netword,内容分发网络)的本质依然是一个缓存,而且将数据缓存在离用户最近的地方,使用户以最快速度获取数据。

CDN能够缓存的一般是静态资源,如图片、文件、CSSJavaScript脚本、静态网页等。由于这些文件访问频率很高,将其缓存在CDN可极大改善网页的打开速度。


反向代理

反向代理的作用:1、保护网站服务器安全  2、加速Web请求响应速度

传统代理服务器位于浏览器一侧,代理浏览器将HTTP请求发送到互联网上,而反向代理服务器位于网站机房一侧,代理网站Web服务器接受HTTP请求。


和传统代理服务器可以保护浏览器安全一样,反向代理服务也具有保护网站安全的作用,来自互联网的访问请求必须经过反向代理服务器,相当于在Web服务器和可能的网络攻击之间建立了一个屏障。

除了安全功能,反向服务器也可以通过配置缓存功能加速Web请求。当用户第一次访问静态内容的时候,静态内容就被缓存在反向代理服务器上,这样当其他用户访问该静态内容的时候,就可以直接从反向代理服务器返回,加速Web请求响应速度,减轻Web服务器负载压力。


nickname
content