登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
签到
每天签到奖励2-10圆
导读
排行榜
TG频道
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
VIP申请
VIP网盘
网盘
联系我们
发帖说明
每日签到
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
资源区
›
代码
›
Web前端入门第 75 问:JavaScript 性能优化之事件委托( ...
Web前端入门第 75 问:JavaScript 性能优化之事件委托(事件代理)原理
[ 复制链接 ]
蚬蕞遂
2025-9-26 10:33:59
如今 Vue 大行其道,大部分开发场景直接使用 @click 就实现了事件绑定,可能都没思索过 JS 中的事件性能优化。
事件委托原理
事件委托 其主要是利用了事件冒泡这个特性。
以点击事件 click 为例:将事件绑定在父元素上,点击子元素会通过冒泡的方式触发父元素的点击事件。这种绑定事件的方式,就称之为 事件委托,也称为 事件代理。
示例
利用事件委托实现点击 span 元素输出 span 元素内容:
<ul >
div 内容
<li>第 1 个 li 第 1 个 span 内容</li>
<li>第 2 个 li 第 2 个 span 内容</li>
<li>第 3 个 li 第 3 个 span 内容</li>
<li>第 4 个 li 第 4 个 span 内容</li>
<li>第 5 个 li 第 5 个 span 内容</li>
<li>第 6 个 li 第 6 个 span 内容</li>
<li>第 7 个 li 第 7 个 span 内容</li>
<li>第 8 个 li 第 8 个 span 内容</li>
</ul>
复制代码
效果:
点击 div 和 li 元素都不会触发事件,点击 span 元素会在控制台输出元素内容。
优点
1、由于 JS 绑定的事件只有一个父元素,所以节省了内存。
2、无需针对每一个子元素绑定事件,所以减少了子元素的事件注册。
3、对于子元素的增删改不用再新注册事件,所以对子元素的操作要简单很多。
4、对于存在大量子元素的页面,由于减少了事件注册次数,所以可以提高页面性能。
缺点
既然事件委托那么有用,那么能不能直接将页面上所有的事件都委托到 body 元素上?
这想法很丰满,但显示很骨感啊,这种情况如果都绑定到最顶层的元素上,那么会导致所有的子元素都会事件冒泡,然后触发顶层元素的事件,这样反而无法做到性能优化,还造成了一些不必要的浪费,毕竟不是所有的子元素都需要响应事件!!
写在最后
性能优化这条路上,一直都存在各种话题,很多性能优化都是过犹不及,适当的场景用适当的方式才是最合理的。
代码编写并不是一蹴而就,很多时候,能实现功能就是好代码,至于性能,在一些小的需求场景,您写的代码可能都无法触发性能问题~~
坚持一个原则:不要过早优化。当我们的代码确实触发了性能问题,再考虑如何优化吧~~
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
事件
Web
前端
门第
JavaScript
相关帖子
前端分支规范
风险洞察之事件总线的探索与演进
[前端] 配置博客园搜索功能实现新标签页打开搜索结果
2025 年前端性能优化终极指南
2025年上半年前端技术圈生态总结
拥抱新一代 Web 3D 引擎,Three.js 项目快速升级 Galacean 指南
336k 星标项目告诉你:前端 / 后端 / AI 岗该怎么学才高效
Vue3+ElementPlus前端中增加对报表模块的封装处理,
告别硬编码!5个让Web自动化脚本更稳定的定位策略
JavaScript数据网格方案AG Grid 34.2 发布
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
前端分支规范
0
197
荆邦
2025-09-29
安全
风险洞察之事件总线的探索与演进
0
144
嗳诿
2025-09-29
安全
[前端] 配置博客园搜索功能实现新标签页打开搜索结果
0
606
醋辛
2025-09-30
业界
2025 年前端性能优化终极指南
0
871
荆邦
2025-09-30
业界
2025年上半年前端技术圈生态总结
0
37
边书仪
2025-09-30
业界
拥抱新一代 Web 3D 引擎,Three.js 项目快速升级 Galacean 指南
0
882
闰咄阅
2025-10-01
业界
336k 星标项目告诉你:前端 / 后端 / AI 岗该怎么学才高效
0
333
姬宜欣
2025-10-02
业界
Vue3+ElementPlus前端中增加对报表模块的封装处理,
0
639
荏牌
2025-10-04
科技
告别硬编码!5个让Web自动化脚本更稳定的定位策略
0
749
跟尴
2025-10-06
代码
JavaScript数据网格方案AG Grid 34.2 发布
0
717
恙髡
2025-10-06
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
安全
科技
程序
签约作者
程序园优秀签约作者
发帖
蚬蕞遂
2025-9-26 10:33:59
关注
0
粉丝关注
21
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9999501
dage888
999994
富账慕
10013
4
匝抽
9986
5
孙淼淼
9992
6
筒濂
9985
7
柴古香
9993
8
凌彦慧
9991
9
崔瑜然
9984
10
慢秤
9979
查看更多