Web前端性能优化

Web前端性能优化,第1张

概述> 参考文献:大型网站技术架构:核心原理与案例分析/李智慧.北京:电子工业出版社,2013.9 浏览器访问优化 1.减少http请求 HTTP协议是无状态的应用层协议,意味着每次HTTP请求都需要建立通信链路、进行数据传输,而在服务器端,每个HTTP请求都需要启动独立的线程去处理。这些通信和服务的开销都很昂贵,减少HTTP请求的数目可有效提高访问性能。 主要手段是合并CSS、合并JavaScrip

> 参考文献:大型网站技术架构:核心原理与案例分析/李智慧.北京:电子工业出版社,2013.9

浏览器访问优化 1.减少http请求

http协议是无状态的应用层协议,意味着每次http请求都需要建立通信链路、进行数据传输,而在服务器端,每个http请求都需要启动独立的线程去处理。这些通信和服务的开销都很昂贵,减少http请求的数目可有效提高访问性能。

主要手段是合并CSS、合并JavaScript、合并图片。将浏览器需要的资源合并成一个文件,这样浏览器就只需要一次请求。

2.使用浏览器缓存

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

3.启用压缩

在服务器端对文件进行压缩,在浏览器端对文件解压缩,可以减少通信传输的数据量。文本文件的压缩效率可达80%以上,因此HTML、CSS、JavaScript文件启用Gzip压缩可达到较好的效果。

4.CSS放在页面的最上面、JavaScript放在页面的最下面

浏览器会在下载全部的CSS之后才对整个页面进行渲染,因此最好的做法是将CSS放在页面的最上面,让浏览器尽快下载CSS。JavaScript则相反,浏览器在加载JavaScript后立即执行,有可能阻塞整个页面,造成页面显示缓慢,因此JavaScript最好放在页面最下面。但如果页面解析时就需要用到JavaScript,这时放在底部就不合适了。

5.减少cookie传输

一方面,cookie包含在每次请求和响应中,太大的cookie会严重影响数据传输,因此哪些数据需要写入cookie需要慎重考虑,尽量减少cookie中传输的数据量。另一方面,对于某些静态资源的访问,如CSS、JavaScript等,发送cookie没有意义,可以考虑静态资源使用独立域名访问,避免请求静态资源时发送cookie,减少cookie的传输次数。

CDN加速

CDN(Content distribute Network,内容分发网络)的本质仍然是一个缓存,而且将数据缓存在离用户最近的地方,使用户以最快的速度获取数据,即所谓的访问第一跳。

由于CDN部署在网络运营商的机房,这些运营商又是终端用户的网络服务提供商,因此用户请求路由的第一跳就到达了CDN服务器,当CDN中存在浏览器请求的资源时,从CDN直接返回给浏览器,最短路径返回响应,加快用户访问速度,减少数据中心的负载压力。

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

反向代理

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

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

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

此外,反向代理也可以实现负载均衡的功能,而通过负载均衡构建的应用集群可以提高系统总体处理能力,进而改善网站高并发情况下的性能。

总结

以上是内存溢出为你收集整理的Web前端性能优化全部内容,希望文章能够帮你解决Web前端性能优化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1066507.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存