前端性能

本文探讨了前端开发中常见的性能问题及解决方案,包括减少HTTP请求、DOM操作优化、使用JSON交换数据、缓存策略、合理放置样式表和脚本、避免CSS表达式等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端开发会有很多性能方面的问题,下面我们从几个方面来讨论:

1.连接过程

1).浏览器中输入网址并且按回车。

2).浏览器尝试与这个url建立连接。如果成功就3,不成功就结束。

3).浏览器向服务器发请求信息。

4).服务器接收到请求后返回响应的信息。

5).浏览器收到来自服务器的应答之后,对数据进行解释执行。

当我们请求的网文件中需要很多图片的时候 浏览器会频繁的与服务器建立连接,并释放连接,这就会很耗时,产生性能负担。http://write.blog.youkuaiyun.com/postedit/39005461

网速相同的条件下下载一个100k的图片比下载两个50l的图片要快,因为请求http是一个很耗时的过程,所以要减少http请求。

解决: css sprites,合并css js文件,对文件压缩,lazyload。

其中lazyload有必要说一下:lazyload,在网页首次加载的时候有很多js并没有用到,把不用的js暂时不加载可以缩短下载时间,并且提高页面渲染的效率(用到的时候再下载)。lazyload.js(urls, fn, scope); 可参照lazyload用法


2.减少对dom的访问。查询时可将其值赋值给局部变量。

//如:
$("#mydom").click(function(){...});
$("#mydom").mouseenter(function(){...});
$("#mydom").hover(function(){...});
...
//以上做法每次都去查询dom
//可以写成
var mydom = $('#mydom');// 这样只查询了一次dom
mydom.click.....
mydom.mouseenter......
mydom.hover.....


3.使用json进行数据交换。它是javascript的原生格式,处理时不需要其他utility的支持。

4.缓存

概念:避免频繁的从服务器存取而建立的一个临时的存储器。它的存取速度非常快,但容量会少点。(空间换时间)

前端缓存可以理解为一般使用的cdn技术,利用squid等做前端缓冲技术,主要还是针对静态文件类型,比如图片,css,js,html等静态文件。弊端就是会导致修改后缓存没有更新,从而页面没有变化。

5.把样式表置于顶部,脚本置于页面底部,尽量使用外部 JavaScript 和 CSS.

样式表: 如果放在了底部,很多浏览器(尤其是IE浏览器)会阻止呈现任何内容,直到加载了这些样式表。用户有可能看到空白如也的一个页面,然后等到全部加载完成了,再突然出现一大堆内容在他面前。这不友好。而且在css加载结束之后,页面可能要重新去渲染一遍。

脚本:脚本放在页面底部,有助于提高页面加载的并行速度。(或者放在头部,设置defer属性,但这不是所有浏览器都支持),还有一种情况,在脚本中有时候需要去查找一个dom,但是放在头部的话页面还没构造,dom不存在就会报错。

6.避免使用 CSS 表达式(Expression)

7.用 <link> 代替 @import
8.避免使用滤镜
9.剔除重复脚本

这篇文章真的是好全面,还是看这个吧... mark一个


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值