位置: IT常识 - 正文

一文搞懂JS-Web-API——DOM(一文搞懂兰州简史)

编辑:rootadmin
一文搞懂JS-Web-API——DOM

推荐整理分享一文搞懂JS-Web-API——DOM(一文搞懂兰州简史),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:一文搞懂中印边界问题的前世今生,一文搞懂傻傻分不清的手机摄像头CMOS,一文搞懂中印边界问题的前世今生,一文搞懂傻傻分不清的手机摄像头CMOS,一文搞懂redis架构演化之路,一文搞懂redis架构演化之路,一文搞懂傻傻分不清的手机摄像头CMOS,一文搞懂中印边界问题的前世今生,内容如对您有帮助,希望把文章链接给更多的朋友!

🌈本系列文章是博主精心整理的面试热点问题,吸收了大量的技术博客与面试文章,总结多年的面试经历,带你快速建立前端面试知识体系。抓住每一场面试的机会,知己知彼才能百战百胜。直击技术痛点,主动出击,精密打击,这才是面试拿到高薪的秘诀!

本系列订阅 一天时间迅速准备前端面试(高薪精品)–欢迎订阅介绍

本章介绍 DOM 操作的知识点和题目。包括 DOM 结构,常用 DOM 操作,DOM 性能优化等。DOM 是网页结构的基础,学会 DOM 操作才可以做网页开发。

主要内容从 JS 基础到 JS-Web-APIDOM 的本质是什么DOM 节点操作DOM 结构操作如何优化 DOM 操作的性能JS Web API背景

JS 基础知识,规定语法(ECMA 262 标准) JS Web API,网页操作的 API(W3C 标准) 前者是后者的基础,两者结合才能真正实际应用

内容DOM:操作网页上的DOM元素,比如文本,图片等BOM:操作浏览器上的一些事情,导航,宽高等事件绑定:绑定事件,监听点击之类ajax:发送网络请求存储:浏览器暂存数据DOM的本质

DOM,document object model DOM的本质是从HTML中解析出来的一棵树,DOM结构就是树结构。

DOM节点操作DOM节点操作:获取dom节点:documen.getElementById()document.getElementsByClassNamedocument.getElementsByTagNamedocuement.querySelectorAll // css选择器attribute // 对html属性进行修改property // js操作属性的一种形式 对dom元素的js变量进行修改const plist = document.querySelectorAll('p')const p1 = plist[0]p1.className // 返回元素的类名p1.nodeName // 返回节点名称p1.nodeType // 返回节点类型 一般元素返回的1

attribute和property的区别

一文搞懂JS-Web-API——DOM(一文搞懂兰州简史)

property:修改对象属性,不会体现到html结构中 (推荐使用:设置js同一变量不一定会重新渲染)

attribute:修改html属性,会改变html结构(设置了dom属性就会重新进行dom渲染)

两者都可能引起dom重新渲染

建议尽量用 property 操作,因为property可能会在JS机制中,避免一些不必要的DOM渲染;但是attribute是修改HTML结构,一定会引起DOM结构的重新渲染,而DOM重新渲染是比较耗费性能的

DOM结构操作新增/插入节点const div1 = document.getElementById('div1')const div2 = document.getElementById('div2')//新建节点const newP = document.createElement('p')newP.innerHTML = 'this is newP'//插入节点div1.appendChild(newP)//移动节点const p1 = document.getElementById('p1')div2.appendChild(p1)获取子元素列表,获取父元素const div1ChildNodes = div1.childNodescosnole.log(div1.childNodes)const div1ChildNodesP= Array.prototype.slice.call(div1.childNodes).filter(child => {//过滤if(child.nodeType === 1) {//获得正常DOM节点。而不是text节点return true}return false})cosnole.log('div1ChildNodesP',div1ChildNodesP)console.log(p1.parentNode)删除子元素div1.removeChild(div1ChildNodesP[0])如何优化 DOM 操作的性能

DOM 性能 DOM 操作会占用CPU,可能会导致浏览器的重绘和重排,使得运行耗时或者说耗费CPU计算比较多,频繁操作可能会导致卡顿的一些问题

DOM 查询做缓存// 不缓存查询for(let i = 0, i < document.getElementsByTagName('p').length, i++) { // 每次循环,都会计算 length, 频繁进行 DOM 查询}// 缓存 DOM 查询结果const length = document.getElementsByTagName('p').length;for(let i = 0, i < document.getElementsByTagName('p').length, i++) { // 缓存 length,只进行一次 DOM 查询}

2.将频繁操作改成一次性操作

const listNode = document.getElementById('list');// 频繁操作for(let i = 0, i < 10, i++) { const li = document.createElement('li'); li.innerHTML = 'List item' + x; listNode.appendChild(li);}// 频繁操作改为一次性操作// 创建一个文档片段,此时还没有插入到 DOM 树中 (理解为创建了一个虚拟DOM的teamplate元素)const frag = document.createDocumentFragment();for(let i = 0, i < 10, i++) { const li = document.createElement('li'); li.innerHTML = 'List item' + x; frag.appendChild(li); // 将生成的 li 先插入到 虚拟DOM中}// 都完成之后,再插入到 DOM 树中list.appendChild(frag);

下期介绍js的高级用法

本文链接地址:https://www.jiuchutong.com/zhishi/300356.html 转载请保留说明!

上一篇:简析强制缓存和协商缓存(强制缓存与协商缓存的区别)

下一篇:Text to image论文精读GigaGAN: 生成对抗网络仍然是文本生成图像的可行选择(论文implications)

  • 东风着陆场已做好准备 通信多个点位准备就绪

    东风着陆场已做好准备 通信多个点位准备就绪

  • 浅析企业品牌推广的方法(企业品牌推广方式有哪些)

    浅析企业品牌推广的方法(企业品牌推广方式有哪些)

  • 支付宝微信付款码截图会被盗刷吗【详细介绍】(支付宝微信付款码多久失效)

    支付宝微信付款码截图会被盗刷吗【详细介绍】(支付宝微信付款码多久失效)

  • iphone后台应用刷新有什么用

    iphone后台应用刷新有什么用

  • 快手点赞后又取消对方能看见吗(快手点赞后又取消动态看得到吗)

    快手点赞后又取消对方能看见吗(快手点赞后又取消动态看得到吗)

  • 手机淘宝摇一摇在哪里(手机淘宝摇一摇在哪里找不到)

    手机淘宝摇一摇在哪里(手机淘宝摇一摇在哪里找不到)

  • 电信卡暂停服务的卡怎么恢复使用(电信卡暂停服务怎么回事没有欠费)

    电信卡暂停服务的卡怎么恢复使用(电信卡暂停服务怎么回事没有欠费)

  • 显卡掉了一个很小的电阻(显卡掉了一个很小的电容)

    显卡掉了一个很小的电阻(显卡掉了一个很小的电容)

  • 闲鱼聊过的人删除了怎么找(闲鱼聊过的人删除了怎么找回)

    闲鱼聊过的人删除了怎么找(闲鱼聊过的人删除了怎么找回)

  • 快手降权是什么意思(快手降权了多久能恢复)

    快手降权是什么意思(快手降权了多久能恢复)

  • ppt修改后无法保存原因(ppt修改后无法保存文件)

    ppt修改后无法保存原因(ppt修改后无法保存文件)

  • qq克隆好友需要对方同意吗(qq克隆好友需要什么条件)

    qq克隆好友需要对方同意吗(qq克隆好友需要什么条件)

  • 宽带拨号上网服务器无响应是怎么回事(宽带拨号上网服务名填什么)

    宽带拨号上网服务器无响应是怎么回事(宽带拨号上网服务名填什么)

  • 苹果下载一直转圈圈下不了(苹果下载一直转圈怎么回事)

    苹果下载一直转圈圈下不了(苹果下载一直转圈怎么回事)

  • 微信加群频繁多久解除(微信加群频繁多久会封号)

    微信加群频繁多久解除(微信加群频繁多久会封号)

  • 安装华为自带的备忘录(华为的安装包)

    安装华为自带的备忘录(华为的安装包)

  • word如何合并邮件照片(Word如何合并邮件制作邀请函)

    word如何合并邮件照片(Word如何合并邮件制作邀请函)

  • 荣耀20怎么设置语音指令(荣耀20怎么设置双系统)

    荣耀20怎么设置语音指令(荣耀20怎么设置双系统)

  • 如何制作动画短片(如何制作动画短视频教程)

    如何制作动画短片(如何制作动画短视频教程)

  • 微信聊天记录怎么恢复?1分钟找回3年前记录(微信聊天记录怎么导出来成文件)

    微信聊天记录怎么恢复?1分钟找回3年前记录(微信聊天记录怎么导出来成文件)

  • 苹果vue怎么导入音乐(vue转ios)

    苹果vue怎么导入音乐(vue转ios)

  • 手机腾讯会员扫码在哪(手机腾讯会员扫码登录)

    手机腾讯会员扫码在哪(手机腾讯会员扫码登录)

  • 微信电话录音怎么打开(微信电话录音怎么取消掉)

    微信电话录音怎么打开(微信电话录音怎么取消掉)

  • 电脑右下角弹窗广告彻底关闭教程(如何彻底关闭电脑右下角弹窗)

    电脑右下角弹窗广告彻底关闭教程(如何彻底关闭电脑右下角弹窗)

  • 我的第一次edusrc漏洞挖掘 (三连挖)(我的第一次作文400字左右)

    我的第一次edusrc漏洞挖掘 (三连挖)(我的第一次作文400字左右)

  • 织梦栏目列表按附加表自定义字段排序(织梦遍历栏目描述)

    织梦栏目列表按附加表自定义字段排序(织梦遍历栏目描述)

  • 进项税转出的会计凭证
  • 并入房屋价值的土地是否交房产税?
  • 收到以前年度退所得税分录
  • 企业一般户需要哪些资料
  • 什么是调账的依据
  • 企业所得税季度申报
  • 各种投资之间的关系
  • 公司注销单位社保欠费怎么处理
  • 所有应收账款是否均已记录
  • 出口退税增值税账务处理
  • 讲师讲课费标准2019
  • 法人存到公司账户的钱怎么记账
  • 税款所属期什么意思
  • 快速撕发票的方法有哪些
  • 小规模普票专票税率一样吗
  • 销售补差怎么做分析
  • 发票属于什么凭证类型
  • 契税缴纳企业所得税吗
  • 材料溢价分录
  • 付给其他公司的利息怎么做账
  • 公司出差是自己先垫付再报账吗
  • 案例分析建筑业差额征税如何进行账务处理?
  • 文化事业建设费的征收范围
  • 建筑业营改增实施指南
  • 税控系统全额抵扣增值税申报
  • 免税投资背后的风险,你都清楚吗?
  • 办公室出租中介公司
  • 企业开具咨询费的发票
  • 财务报表批准日是哪一天
  • 房地产开发企业资质证书
  • 冲销多计提个税怎么做账
  • 安置房项目需要环评吗
  • 中秋节给员工购物文案
  • 深度linux使用入门教程
  • 预付装修费的会计处理分录
  • 本地部署stable diffusion需要什么显卡
  • php filesize
  • wordpress静态分离
  • 什么是重绘和回流
  • vue0
  • 服务型制造收入
  • 企业所得税是怎么产生的
  • vue大型项目撑得住吗
  • 劳务派遣公司账务
  • 什么是进项税转出成本
  • 公司出售房子怎么交税
  • 白酒贴牌酒是真酒还是假酒
  • centos7阿里云源
  • 公司采购不含税产品合法吗
  • mysql 的load data infile
  • 销售退回采购方的会计分录
  • 超市预付卡销售会计分录
  • 增值税明细账怎么结账
  • 不允许抵扣进项税额的是
  • 偿债基金作用
  • 所得税汇算清缴前取得跨年发票
  • 电子银行承兑汇票到期怎么兑现
  • 小规模纳税人的增值税账务处理
  • 残保金不申报可以补缴吗
  • linux怎么用命令
  • win8怎么禁用强制驱动签名
  • ubuntu顶部菜单栏
  • win7声音方案存在哪里
  • wind8系统怎么清除所有东西 恢复出厂
  • 开启win10
  • win7系统如何查看内存条型号
  • linux sed
  • zlib是什么意思
  • win7打开网页显示证书有问题
  • 深入领悟六个必须坚持
  • dos命令 获取文件名
  • 用jquery
  • js模拟用户输入
  • jquery插件怎么写
  • android开发框架
  • 对于初学者的鼓励
  • 哪个机场离东莞樟木头最近
  • 未清卡会锁死吗?
  • 国家税务总局39号文
  • 浙江摩托车上牌条件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设