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

  • 车辆购置税会计科目怎么做账
  • 山东省注册税务师协会官网
  • 投资性房地产在建
  • 存货跌价准备影响当期损益吗
  • 运输企业内账
  • 委外加工怎么做仓库账
  • 工程项目罚款收入账务处理
  • 个体户定期定额是什么意思
  • 发生非正常损失的购进货物不准予抵扣的增值税
  • 研发过程中材料费计入
  • 劳务外包要通过应付职工薪酬吗
  • 承包方收取分包方费用
  • 审计调整坏账后什么时候回冲分录?
  • 购买材料自用不退款
  • 房地产公司开水电费发票
  • 不同项目之间进项税能否抵扣?
  • 物业服务费属于什么合同印花税
  • 企业所得税报表模板
  • 小规模纳税人未达起征点增值税处理
  • 土地出让金为何写有效期
  • 个人所得税加计扣除有哪些项目
  • 企业代扣代缴个人所得税系统
  • 分公司收到总公司拨款怎么做分录
  • 房地产开发企业需要缴纳哪些税
  • 支付宝微信结算属于什么结算方式
  • 开户许可证复印件是什么
  • 结转固定资产净收益8万元
  • 研发成功的产品卖出去怎么做账
  • 飞机票本身包含保险吗多少钱
  • 个税手续费返还要交企业所得税吗
  • 餐饮的成本核算表格模板
  • 一年内的待摊费用可以一次性进入成本吗
  • php有很多流行的mvc框架,这些框架可以
  • 华硕笔记本装win8
  • vpengine.exe进程
  • PHP:Memcached::replaceByKey()的用法_Memcached类
  • 小微企业减免额怎么计算
  • 超过两年的发票还可以查询吗
  • 浅谈php技术
  • 售后租回融资租赁帐务处理怎么做?
  • 企业发生的与日常经营活动无直接关系的各项利得
  • 现金日记账的填制要求
  • 小规模纳税人企业所得税税收优惠政策
  • 基础kl
  • 当月增加的固定资产当月不计提折旧
  • php判断https
  • Python打开文件的代码
  • 商业保险可以从一家转到另一家吗
  • 小规模纳税人与一般纳税人的区别表现在小规模纳税人
  • 个体户的税收政策
  • 企业所得税的营业成本包括期间费用吗
  • 代发工资需要缴税吗
  • 公司代缴个税怎么做账
  • 对公允价值套期的认识
  • 事业单位取暖费2023
  • 招标公司的成本控制
  • 房产公司增值税专用发票
  • 原材料暂估的业务包括
  • 用友u8怎样查询上个月凭证
  • 进口关税如何交
  • 营业外支出明细账应该采用的格式是
  • 什么差旅费
  • 价外费用如何计税
  • 对公账户 发票
  • 职工教育经费的差旅费可以抵扣吗
  • windows如何创建桌面快捷方式
  • win7系统如何恢复桌面图标
  • xp系统如何去掉开机登陆界面
  • Windows7电脑怎么调整屏幕亮度
  • json的用法
  • nodejs爬取数据
  • jquery判断控件是否存在
  • 中文路径和英文路径
  • shell获取当前脚本的进程
  • 显示随机数
  • Unity3D游戏开发(第2版)
  • javascript基本语句
  • 图片旋转鼠标键盘怎么弄
  • Android-Universal-Image-Loader最新框架解析
  • 武汉办房产证契税怎么交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设