我们通常听说网站的性能有问题。要优化它,所有的后端开发人员都要加班来优化代码。所以前端程序员无事可做,有没有优化的地方?今天,我们来谈谈前端程序员的优化。
1、 浏览器访问优化
HTTP协议是一种无状态的应用层协议,意味着每个HTTP请求都需要建立一个通信链路进行数据传输,而在服务器端,每个HTTP都需要启动一个独立的线程进行处理。这些通信和服务成本非常昂贵,减少HTTP请求的数量可以有效地提高访问性能。
减少HTTP请求的主要方法是合并CSS、Javascript和图片。将每次访问所需的浏览器-JavaScript和CSS合并到一个文件中,这样浏览器只需要一个请求。图片也可以合并。多张图片可以合并为一张。如果每张图片都有不同的超链接,则可以使用CSS偏移量响应鼠标单击操作并构造不同的url。
对于一个网站来说,CSS、JavaScript、logo、icon等静态资源文件的更新频率相对较低,几乎每个HTTP请求都需要这些文件。如果将这些文件缓存在浏览器中,则可以大大提高性能。通过在HTTP头中设置cache control和expires的属性,可以设置浏览器缓存。缓存时间可以是几天甚至几个月。
服务器端的文件压缩和浏览器端的文件解压缩可以有效地减少通信传输的数据量。文本文件的压缩效率可以达到80%以上,因此对Html、CSS和JavaScript文件启用gzip压缩可以取得更好的效果。
CSS放在页面的顶部,JS放在页面的底部。下载完所有CSS后,浏览器将呈现整个页面,因此优化的方法是将CSS放在页面顶部,这样浏览器就可以尽快下载CSS。相反,JavaScript在浏览器加载JavaScript后立即执行,这可能会阻塞整个页面,导致页面显示缓慢。因此,JavaScript放在页面的底部。但是如果页面解析需要JavaScript,那么将它放在底部是不合适的
2、 使用CDN加速
CDN(content distribution network,内容分发网络)的本质仍然是一个缓存,数据被缓存在离用户近的地方,以便用户能够以快的速度获取数据。
由于CDN部署在网络运营商的机房,网络运营商也是终用户的网络服务提供商,因此用户请求路由到达CDN服务器。当CDN中有浏览器请求的资源时,它们直接从CDN返回到浏览器中,短路径返回响应,加快了用户访问速度,降低了数据中心的负载压力。
3、 反向代理
传统的代理服务器位于浏览器端,代理浏览器向互联网发送HTTP请求,而反向代理服务器位于网站机房侧,代理网站web服务器接收HTTP请求。
由于传统的代理服务器可以保护浏览器的安全,反向代理服务器也可以保护网站的安全。来自Internet的访问请求必须通过代理服务器,这相当于在web服务器和可能的网络攻击之间建立了一个屏障。
除了安全性之外,代理服务器还可以通过配置缓存来加速Web请求。当用户初次访问静态内容时,静态内容缓存在反向代理服务器上,这样当其他用户访问静态内容时,可以直接从反向代理服务器返回,加快web请求的响应速度,减轻web服务器的负载压力。