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

  • 抖音被对方设置隐私怎么办(抖音被对方设置隐私可以破吗)

    抖音被对方设置隐私怎么办(抖音被对方设置隐私可以破吗)

  • 笔记本电脑返回键是哪个(笔记本电脑返回上一步)

    笔记本电脑返回键是哪个(笔记本电脑返回上一步)

  • 投屏只投画面不投声音(投屏只投图像)

    投屏只投画面不投声音(投屏只投图像)

  • dns关闭还是自动(dns关闭是什么意思)

    dns关闭还是自动(dns关闭是什么意思)

  • 视频怎么合并成一个(视频怎么合并成一个完整版)

    视频怎么合并成一个(视频怎么合并成一个完整版)

  • 华为微信怎么是黑色的(华为微信怎么是黑色的了怎么办)

    华为微信怎么是黑色的(华为微信怎么是黑色的了怎么办)

  • 淘宝一般几天自动确认收货(淘宝一般几天自动收货的)

    淘宝一般几天自动确认收货(淘宝一般几天自动收货的)

  • 6核12线程是什么意思(6核12线程和6核6线程)

    6核12线程是什么意思(6核12线程和6核6线程)

  • 文件下载打开找不到应用程序(下载的文件点击打开没有反应)

    文件下载打开找不到应用程序(下载的文件点击打开没有反应)

  • b站充电是什么意思(b站充电能赚钱吗)

    b站充电是什么意思(b站充电能赚钱吗)

  • 微店分期为什么开通不了(微店分期无法还款)

    微店分期为什么开通不了(微店分期无法还款)

  • 赛扬g4930处理器相当于i几(赛扬G4930处理器怎么样)

    赛扬g4930处理器相当于i几(赛扬G4930处理器怎么样)

  • 拍好的抖音怎么更换音乐(拍好的抖音怎么修改文字)

    拍好的抖音怎么更换音乐(拍好的抖音怎么修改文字)

  • oppo手机死机了怎么办(oppo手机死机了一直显示充电)

    oppo手机死机了怎么办(oppo手机死机了一直显示充电)

  • vivoiqoo有红外线吗(vivoiqoo5红外线)

    vivoiqoo有红外线吗(vivoiqoo5红外线)

  • 苹果11手机怎么截屏(苹果11手机怎么录屏 教程视频)

    苹果11手机怎么截屏(苹果11手机怎么录屏 教程视频)

  • r17pro支持nfc功能吗(r17pro有nfc功能吗)

    r17pro支持nfc功能吗(r17pro有nfc功能吗)

  • 华为mate30pro是2k屏吗(mate30pro支持2k吗)

    华为mate30pro是2k屏吗(mate30pro支持2k吗)

  • 怎么调整图片分辨率(怎么调整图片分辨率手机)

    怎么调整图片分辨率(怎么调整图片分辨率手机)

  • 移动4g版手机什么意思(2021移动4g)

    移动4g版手机什么意思(2021移动4g)

  • 华为p40上市时间(华为p40上市时间和价格)

    华为p40上市时间(华为p40上市时间和价格)

  • iphonexr怎么隐藏软件(iphonexr怎么隐藏底部栏)

    iphonexr怎么隐藏软件(iphonexr怎么隐藏底部栏)

  • wds未开启什么意思(wds未开启怎么弄)

    wds未开启什么意思(wds未开启怎么弄)

  • Win11开机蓝屏怎么办? windows蓝屏重启原因分析及解决办法汇总(win11开机蓝屏怎么解决)

    Win11开机蓝屏怎么办? windows蓝屏重启原因分析及解决办法汇总(win11开机蓝屏怎么解决)

  • Win7系统中,如何对IP地址进行设置呢?(win7系统中怎样)

    Win7系统中,如何对IP地址进行设置呢?(win7系统中怎样)

  • 织梦面包屑导航最后的分隔符大于号去掉方法

    织梦面包屑导航最后的分隔符大于号去掉方法

  • 外部奖励与内部奖励
  • 个人所得税 补觉
  • 无合同销售收入怎么算
  • 城市维护建设税优惠政策
  • 消费税的会计处理分录
  • 个人所得税减免 租房没有合同编号
  • 小规模附加税是多少
  • 合并后少数股东权益的处理
  • 接受捐赠材料需要交税吗
  • 预付房租发票未到分录
  • 扣缴个人所得税报告表
  • 存货取得长期股权投资
  • 公司承租厂房装修协议
  • 同一个客户有应收也有应付怎么办
  • 建安企业工资占比标准
  • 网上支付的三种类型
  • 做企业所得税汇算清缴前需要准备什么资料
  • 普票开票开给个人怎么开
  • 倒增值税发票过程
  • 小规模纳税人零申报什么意思
  • 承包学校的食堂如何纳税
  • 股权转让怎么缴纳个人所得税
  • 转账支票背书是什么意思啊
  • 给研发人员福利怎么做账
  • 未分配利润清算如何处理
  • 员工给公司代垫的款项分录
  • 新版edge浏览器设置背景图片
  • 房租发票需要缴房产税吗
  • 企业福利费支出范围
  • 固定资产的财务处理方法
  • 无法启用网络发展
  • 已抵扣的进项税额红冲的账怎么做
  • 增值税进项税额转出的情况有哪些
  • 土地使用税的税目写什么
  • 融资租入固定资产是什么意思
  • 新成立公司实收资本没到位该怎么做账
  • php学生管理系统设计报告
  • 游戏ai模式是什么意思
  • 母公司为子公司提供担保需要决议吗
  • 企业转让应收账款分录
  • 企业收取的罚款需要交企业所得税吗
  • 客户要发票加收怎么办
  • python多进程间通信
  • 如何利用税收经济效应实现税收的宏观调控目标
  • 企业欠缴非税收据怎么写
  • 固定资产折旧如何影响利润
  • 银行汇票计入什么会计科目
  • 发票作废该如何操作
  • 劳务简易征收最新政策2020
  • 报价中含税和不含税比例
  • 税控盘会计分录怎么做
  • 新增社保需要工资表和记账凭证吗
  • 注册资金凭证怎么做
  • 什么叫社保差额调整
  • mysql分区语句
  • Ubuntu 14.04/14.10如何安装记账软件HomeBank?
  • zhudongfangyu.exe是什么进程,可以删除吗
  • 电脑任务栏中没有网络图标
  • 怎么在ubuntu上编程
  • 怎么在win7开始菜单添加文件夹
  • 影子系统作用
  • ubuntu20.10安装教程
  • 磁盘分区右键是灰色的
  • win10系统更改
  • cocos-2dx
  • alt用不了
  • 常用批处理命令大全
  • Node.js中的核心模块包括哪些内容?
  • android怎么样
  • js正则 \w
  • python语言的特殊符号
  • js 进阶
  • jquery获取当前地址
  • jquery.css
  • js立即执行函数作用
  • javascript模块化与非模块化开发区别
  • 教育培训机构都交哪些税
  • 税务局登记是什么
  • 天津本田天虹90摩托车库存
  • 房屋租赁管理部门制发的《房屋租赁证》
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设