HTML集合是包含了DOM节点引用的类数组对象。

document.getElementsByTagName();

document.images   document.links document.forms   document.forms[0].elements

HTML集合有length,有索引,但不是真正的数组    没有push 或slice之类的方法

HTML集合处于一种“实时状态” 实时存在,这意味着底层文档对象更新时,它也会自动更新,HTML集合与文档一直保持连接,每次你需要更新信息时,都命运 重复执行查询的过程,这下是低效之源

昂贵的集合

缓存数组长度  \

for(var i=0,len = coll.length;i<len;i++) {

}

更有将集合转化为数组

function toArr(coll) {

for(var i = 0, a = []; len = coll.length; i < len; i++) {

a[i] = coll[i];

}

return a;

}

这个写法比较好,for的第一项可用于创建变量,

但用此法也不一定好,因为它要两次循环(toArr  一次,遍历数组一次),看情况而定.

转载于:https://www.cnblogs.com/yushunwu/archive/2011/09/15/2178081.html

高性能Javascript HTML集合访问的学习笔记相关推荐

  1. 高性能Javascript重绘和重排学习笔记

    浏览器下载完页面中所有的组件   HTML标记,css,js,图片面性  之后,会解析生成两个内部数据结构 DOM树  表示页面结构 渲染树  表示DOM节点如何显示 DOM树中每一个需要显示的节点在 ...

  2. 计算机专业常用图论,同等学力申硕计算机专业--数学公式集合(新增学习笔记)...

    组合数学部分: 基础公式: 定义:从n个不同的元素中, 取r个并按次序排列, 称为从n中取r个的一个排列, 全部这样的排列数记为P(n, r). 定义: 从n个不同的元素中, 取r个但是不考虑次序时候 ...

  3. (pytorch-深度学习系列)模型参数的初始化与访问操作-学习笔记

    模型参数的初始化与访问操作 学习 如何初始化以及访问模型参数,以及如何在多层之间共享模型参数 首先定义一个含有单个隐藏层的多层感知机,使用默认方式初始化该模型的参数,并且进行一次前向计算: impor ...

  4. javascript简单性能问题及学习笔记

    最近在看一本书:<高性能javaScript>,发现自己平时写js存在很多小细节上的问题,虽然这些问题不会导致程序运行出错,但是会导致界面加载变慢,用户体验变差,那么我们就来细细数一下应该 ...

  5. 【前端】JavaScript(包括ES6)学习笔记(重要)

    本人收藏来自互联网的JavaScript笔记,仅供学习自用(⊙o⊙)哦! js之重点难点 https://www.cnblogs.com/xiaohuochai/p/5613593.html fals ...

  6. JavaScript设计模式之观察者模式(学习笔记)

    设计模式(Design Pattern)对于软件开发来说其重要性不言而喻,代码可复用.可维护.可扩展一直都是软件工程中的追求!对于我一个学javascript的人来说,理解设计模式似乎有些困难,对仅切 ...

  7. JavaScript DOM部分基础知识学习笔记(4)

    目录 JavaScript_浏览器环境概述(BOM) 代码嵌入网页的方法 加载使用的协议 JavaScript_script元素工作原理 defer 属性 async 属性 JavaScript_回流 ...

  8. 寄存器(内存访问)---汇编学习笔记

    寄存器(内存访问) 序言 第二章,我们主要从CPU如何执行指令的角度讲解了8086CPU的逻辑结构.形成物理地址的方法.相关的寄存器以及一些指令. 这一章,我们从访问内存的角度继续学习几个寄存器. 3 ...

  9. Java集合与泛型学习笔记

    1:Java集合类 首先我们思考为什么出现集合类? 理由: 1面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象操作,就对对象进行储存,集合就是储存对象最常用的一种方式 2 数组和集合同 ...

最新文章

  1. python科学计算基础教程pdf下载-Python科学计算基础教程_PDF电子书
  2. 【Java线程】Thread Runnable必知必会
  3. 使用TortoiseGit操作分支的创建与合并
  4. 数据结构-栈5-栈的应用-后缀转中缀
  5. nodejs框架微商个人相册多端小程序源码
  6. antd vue中,如何给表单动态添加input,解决遇到一些坑
  7. mysql flask-login_Flask框架通过Flask_login实现用户登录功能示例
  8. “这样使用RHEL合法吗”?
  9. 日常工作中,个人总结的 - Git - 常用操作方法 (三)
  10. Linux下如何阅读开源项目
  11. zotero 相关文章链接 (侵权请联系,立即删除)
  12. CE6870 添加ipv6 策略路由失败问题解决
  13. 安装R软件(R、studio)的安装包下载官网和教程
  14. linux系统发育树的构建步骤,使用modeltest-ng和raxml-ng构建ML系统发育树
  15. 关于淘宝和12306的分析
  16. CSDN日报180605——《认知升级是令我们变得优秀的重要基石》
  17. 云豹php短视频源码实现身份证验证的方法
  18. 从零开始的颜值评分 游戏项目 (一)Maven的相关配置 ——第一个SpringBoot小程序
  19. 数字图像处理学习笔记(十五)——图像复原与重建
  20. 怎么把信息秒回做到极致?IMO班聊也是拼了

热门文章

  1. Java笔记-AES加解密(PKCS7padding可用)
  2. Python笔记-使用U2自动登录某APP及watcher使用
  3. Web前端笔记-修改element ui中表格样式(透明、去横纵线等含修改思路)
  4. canvas笔记-使用canvas画矩形及各样式(透明)
  5. Web前后端笔记-vue封装http请求添加signature及后端(Java)解析并验证
  6. JS笔记-前端实现验证码功能
  7. C++设计模式-外观模式
  8. 系统架构师学习笔记-数据通信与计算机网络(二)
  9. Linux学习笔记-配置SAMBA服务
  10. windows iis 部署 django项目