




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七课 提升dom操作效率的9个手段本课目标提升dom操作效率的9个通用手段注意:这一节考虑的点和上一节恰好相反,如果把内存泄漏归结为“空间问题”,那么这一节考虑的则是“时间问题”。算法设计里面一个常见的手段是:用空间换时间或者用时间换空间。如何考量,需要具体权衡。基础概念1、浏览器加载html、js、图片的顺序;2、如何解析、渲染html;3、“重绘”加载顺序工具:http:/ 插入顺序 插入顺序:function test1() var d1=new date().gettime(); var father=document.createelement(div); for(var i=0;
2、i1000;i+) var sub=document.createelement(div);sub.id=sub_+i;father.appendchild(sub);document.body.appendchild(father); var d2=new date().gettime();alert(d2-d1);function test2() var d1=new date().gettime(); var father=document.createelement(div);document.body.appendchild(father); for(var i=0;i1000;i+
3、) var sub=document.createelement(div);sub.id=sub_+i;father.appendchild(sub); var d2=new date().gettime();alert(d2-d1);注意点:这里和上一节说的“内存泄漏”中的代码不同可以发现,用时间换空间、用空间换时间之间的考量和平衡第二种 在副本上修改function test3() var orig=$(mydiv); var d1=new date().gettime(); var cloned=orig.clonenode(true); for(var i=0;i10000;i+) v
4、ar sub=document.createelement(div);sub.id=sub_+i;cloned.appendchild(sub);/orig.appendchild(sub);orig.parentnode.replacechild(cloned,orig); var d2=new date().gettime();alert(d2-d1);第三种 先设置为不可见再改varel=$(id);el.style.display=none;/注意一下display=none和visible=false的区别,display=none的时候元素不占位置,而visible=false的时
5、候元素不显示,但是位置还占着。el.appendchlid(newnodes);第四种 缓存元素的属性其实,获取属性的操作也有可能引起“重绘”。如果获取的次数非常频繁,还是非常昂贵。for(vari=0;i=500)clearinterval(timer); return;orig.style.left=(i*5+px);i+;,50);第七种 关于查找第一种,没有优化的手工查找:第二种:break!/在大量查询的时候,找到元素之后,立马break很重要!第三种:使用内置的xpath引擎来查找varheadings=document.evaluate(/h2|/h3|/h4,document,
6、null,xpathresult.ordered_node_iterator_type,null);varoneheading;while(oneheading=headings.iteratenext().下一节的ext优化手段里面给出xpath的实例第八种 dom walk在迭代dom节点的过程中,不要改变节点:varallelements=document.getelementsbytagname(div);for(vari=0;iallelements.length;i+)if(allelementsi.tagname.match(/h2-4$/i).这个例子可以参考java里面的iterator.remove()第九种 缓存频繁使用的节点第一段:document.getelementbyid(test).property1=value1;document.getelementbyid(test).property2=value2;document.getelementbyid(test).property3=value3;document.getelementbyid(test).property4=value4;第二段:varsample=document.getelementbyid(test);perty1=value1;sample.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB36-T1557-2021-红心杉第三代育种群体营建技术规程-江西省
- 企业财务制度建设的必要性试题及答案
- 2025年七年级语文期末文言文阅读(寓言类)卷:文言文阅读技巧提升试题
- 2025年华为HCIA认证模拟试卷:网络基础与设备配置技能考核
- 2025年考研政治毛泽东思想概论章节深度测试卷及解析
- 2025年注册结构工程师考试钢结构设计模拟试题汇编及解析
- 2025年物流服务师中级考试:仓储管理与配送优化模拟试题解析与实战训练
- 2025年科研经费使用报销细则全解析-高校版
- 2025年学校党建带团建工作实施方案与校园法治
- 护理授课课件
- 2025年公共文化服务体系建设考试试题及答案
- 2025年消防知识考试题库:火灾预防与逃生逃生技巧实战演练题
- 经纪公司聘用协议书
- 高速公路占道施工应急安全措施
- 2025-2030年中国保健食品行业市场发展分析及竞争格局与投资发展研究报告
- 温州市普通高中2025届高三第三次适应性考试物理试题及答案
- 装修合同工人免责协议
- 初中化学基础试题及答案
- 6.3种群基因组成的变化与物种的形成课件-2高一下学期生物人教版必修2
- 《导数及其应用》复习课教学课件
- 林业高级工试题及答案
评论
0/150
提交评论