Web前端性能优化, 不仅能够改善站点的用户体验
,并且能够节省相当的资源利用
。下面将从1)服务器、2)html内容、3)css、 4)javascript、 5)图片 等几方面介绍具体的优化操作。
把网站内容分散到多个、处于不同地域位置的服务器上可以加快下载速度。
Http2.0的优点
e.g 使用nginx, 要求 1)v1.9.5以上, 2)使用https;
CSS、javascript、logo、图标这些静态资源文件更新的频率都比较低,而这些文件又几乎是每次http请求都需要的,如果将这些文件缓存在浏览器中,可以极好的改善性能。
通过设置http头中的cache-control
和expires
的属性,可设定浏览器缓存,减少网络请求次数。
ETags(Entity tags,实体标签)是web服务器和浏览器用于判断浏览器缓存中的内容和服务器中的原始内容是否匹配的一种机制。
这条策略是最重要最有效的,因为一个完整的请求要经过DNS寻址,与服务器建立连接,发送数据,等待服务器响应,接收数据这样一个消耗时间成本和资源成本的复杂的过程。 常见方法:
为了减少DNS的询次数,最好的解决方法就是在页面中减少不同的域名请求的机会。
如果重定向的话,就需要在访问过程中重复发起一连串的动作,会消耗很多时间,因此避免出现多次重定向地址或资源的访问。
js,css 写到单独的文件中,便于浏览器缓存。
ansyc, defer不会阻塞浏览器的文档解析。
对于图片而言,在页面刚加载的时候可以只加载第一屏,当用户继续往后滚屏的时候才加载后续的图片。这样一来,假如用户只对第一屏的内容感兴趣时,那剩余的图片请求就都节省了。
页面中存在大量DOM元素,会导致javascript遍历DOM的效率变慢。
iframes 提供了一个简单的方式把一个网站的内容嵌入到另一个网站中。但其创建速度比其他包括JavaScript和CSS的DOM元素的创建慢了1-2个数量级。
HTTP请求时间消耗是很大的,因此使用HTTP请求来获得一个没有用处的响应(例如404没有找到页面)是完全没有必要的,它只会降低用户体验而不会有一点好处。
在实际应用中使用外部文件可以提高页面速度,因为JavaScript和CSS文件都能在浏览器中产生缓存。
使用JavaScript访问DOM元素比较慢
cookie包含在每次请求和响应中,太大的cookie会严重影响数据传输
负载均衡load balancer,降低每个站点的请求书,提高单个请求的响应时间。
原文:https://blog.51cto.com/u_13549122/2726920