位置: 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)

  • 快手保存相册怎么隐藏快手号(快手保存相册怎么关闭)

    快手保存相册怎么隐藏快手号(快手保存相册怎么关闭)

  • 怎么查询社保卡是否激活(怎么查询社保卡账号)

    怎么查询社保卡是否激活(怎么查询社保卡账号)

  • 电源适配器是充电器吗(电源适配器是充电宝么)

    电源适配器是充电器吗(电源适配器是充电宝么)

  • 谷歌街景怎么用(谷歌街景新)

    谷歌街景怎么用(谷歌街景新)

  • 苹果特效短信对方看不到(苹果手机短信特效对方能看到吗)

    苹果特效短信对方看不到(苹果手机短信特效对方能看到吗)

  • x分身怎么登录不了(x分身不能用了吗)

    x分身怎么登录不了(x分身不能用了吗)

  • 系统测试的基本方法有什么

    系统测试的基本方法有什么

  • 淘宝下单保护七天原因(淘宝下单保护7天能恢复吗)

    淘宝下单保护七天原因(淘宝下单保护7天能恢复吗)

  • 拼多多超过7天可以退货吗(拼多多超过7天没收到货)

    拼多多超过7天可以退货吗(拼多多超过7天没收到货)

  • 移动硬盘不能拷贝东西进去 (移动硬盘不能拷贝东西进去)

    移动硬盘不能拷贝东西进去 (移动硬盘不能拷贝东西进去)

  • 打印机定影器坏了什么症状(打印机定影器坏了会卡纸吗)

    打印机定影器坏了什么症状(打印机定影器坏了会卡纸吗)

  • oppo屏幕旋转无效(oppo屏幕不旋转了怎么办)

    oppo屏幕旋转无效(oppo屏幕不旋转了怎么办)

  • 朋友圈部分人可见对方会知道吗(朋友圈部分人可见陌生人可以看到吗)

    朋友圈部分人可见对方会知道吗(朋友圈部分人可见陌生人可以看到吗)

  • oppo手机siri怎么打开(OPPO手机siri怎么召唤)

    oppo手机siri怎么打开(OPPO手机siri怎么召唤)

  • 读取设备通话和识别码是什么(什么叫读取设备通话状态)

    读取设备通话和识别码是什么(什么叫读取设备通话状态)

  • 华为4gb和6gb的区别(华为手机运行4gb和6gb的有什么区别)

    华为4gb和6gb的区别(华为手机运行4gb和6gb的有什么区别)

  • 冯诺依曼计算机的五大部件(冯诺依曼计算机体系结构)

    冯诺依曼计算机的五大部件(冯诺依曼计算机体系结构)

  • 安装介质是什么(安装介质不可用)

    安装介质是什么(安装介质不可用)

  • ios13静音未知来电在哪里设置(苹果静音未知来电怎么没用了)

    ios13静音未知来电在哪里设置(苹果静音未知来电怎么没用了)

  • 苹果max碎屏险怎么查(苹果碎屏险怎么理赔)

    苹果max碎屏险怎么查(苹果碎屏险怎么理赔)

  • 如何使用微信(如何使用微信分付借钱)

    如何使用微信(如何使用微信分付借钱)

  • 微信自启在哪里设置(微信的自启功能在哪里)

    微信自启在哪里设置(微信的自启功能在哪里)

  • beatsx充电时能用吗

    beatsx充电时能用吗

  • 怎么看好友多少天(怎么看好友多少天不是认识多少天)

    怎么看好友多少天(怎么看好友多少天不是认识多少天)

  • 苹果xsmax手机怎么显示电量(苹果xsmax手机怎么录音)

    苹果xsmax手机怎么显示电量(苹果xsmax手机怎么录音)

  • iphonexr电量百分比在哪里(iphonexr电量百分比)

    iphonexr电量百分比在哪里(iphonexr电量百分比)

  • mp3内存卡怎么插(mp3内存卡怎么插手机下歌)

    mp3内存卡怎么插(mp3内存卡怎么插手机下歌)

  • phpcms适合做什么网站(phpcms开发招聘)

    phpcms适合做什么网站(phpcms开发招聘)

  • 房地产业预售房的预收款退回的涉税处理?
  • 固定资产减少如何处理
  • 增值税发票遗失怎么操作
  • 固定资产分期付款会计处理
  • 中药和中药饮片效果一样吗
  • 企业申报表有异常期间可以更换财务负责人吗
  • 包装纸箱属于原材料吗
  • 扣缴附加税怎么做分录
  • 高新技术产品收入增长率公式
  • 基本养老保险覆盖人数
  • 汇算清缴补交的税怎么做凭证
  • 个人房补申请书怎么办
  • 在外地的分公司可以独立核算开发票吗
  • 小微企业免征增值税优惠
  • 劳动保护用品应由什么开支
  • 企业销售食品过期处罚
  • 税收分类编码选错会怎样
  • win11开始菜单怎么设置成左下角
  • win10 20h2更新时间久
  • 微软发布新windows
  • 应交税费年末账务处理
  • 金蝶固定资产减少怎么做
  • 工资薪金怎么申报9
  • 预提电费及电费发票到账的会计分录
  • 捐赠固定资产入账价值
  • 预收账款何时结转
  • 鸿蒙系统怎么隐藏应用图标
  • linux怎么创建一个用户组
  • 生产设备改良支出计入什么费用
  • 刚收到的假发怎么处理
  • mp3格式最高音质
  • 发行债券的会计分录摊销
  • 取得交易性金融资产的交易费用
  • 一点分享案例
  • 土地出让金返还比例是多少
  • 每个季度30万免增值税
  • python科学计算库有哪些
  • java sc
  • phpipam使用
  • 母公司给子公司借款要利息吗
  • 高新补助收入属于不征税收入吗
  • 企业所得税视同销售的有哪些?
  • 小规模纳税人的条件
  • 建筑业营改增的主要内容
  • 银行怎么划分标准
  • 明细与发票
  • 库存商品暂估入库可以结转成本吗
  • 检测费用开票税率
  • 适用于一般纳税人的税率有
  • 电商的成本构成包括
  • 其他业务支出可以在企业所得税前扣除吗
  • 申报财产租赁合同怎么写
  • 进项税额转出加计抵减填在哪里
  • mac电脑快速查询
  • mac链接其他屏幕
  • windows无法安装所需的文件,请确保所需的所有文件可用
  • mac上怎么查看qq聊天记录
  • linux的ps命令用法
  • linux系统中QQ的使用和配置
  • win10如何限制电脑上网权限
  • windows xp桌面图标
  • win8如何更新驱动
  • windows8装 .NET 3.5 时出现0x800F081F错误解决方法
  • linux小技巧
  • opengl es api
  • android自定义控件入门与实战
  • nodejs读取文件和写文件的方法
  • 编写shell脚本,批量建立用户
  • shell脚本计算执行时间
  • node.js的安装方法
  • node.js gui
  • python简要说明读取文件的一般流程
  • 请问在javascript程序中
  • jquery点击跳转页面
  • js脚本使用教程
  • python网络爬虫总结
  • 对外支付佣金需要代扣代缴印花税吗
  • 房产契税退税在哪里办理
  • 传统服务贸易和新兴服务贸易如何区分
  • 什么是契税发票?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设