此文用来记录学习笔记

•嗯!首先,什么是DOM(Document Object Model)
–W3C对DOM的定义:文档对象模型是一个平台,一个中立于语言的应用程序编程接口(API),允许程序访问并更改文档的内容、结构和样式。
–其实DOM是一种通用的模型、不止在我们的HTML中存在,也可以在其他文件中存在,相信你最熟悉的就是XML了吧,其实还有很多...
–DOM的发展也非常的漫长,版本延续,产生了0级DOM、1级DOM、2级DOM和最新的3级DOM,那么相对成熟的就是从2级DOM以后了。每一次版本更新都有非常实用的变化。

节点Node,对于nodeType、nodeName、nodeValue、getAttribute等等一些对加点的定义你一定不会陌生

•对于DOM模型的操作,相信一个个熟悉又可爱的名字你一定知道:
•DOM的访问
–document.getElementById、document.getElementsByTagName、document.getElementsByName、innerHTML、innerText等等一些方式去访问DOM元素
•DOM的CRUD
–createElement、parentNode、childNodes、appendChild、removeChild、replaceChild、inertBefore、firstChild、previousSibling等等一系列操作DOM的方式
•对于DOM的样式
–我也相信你非常的了解,只需要给节点添加一个style属性,我们就可以操作该节点的样式,或者触发事件改变样式,又或者根据需求操作DOM变换不同的动画效果等等,这都离不开style属性。
•好了,对于旧时代的DOM我们暂且放在一边、那么Ext的出现,让以上这些对于DOM的概念变得简单、实用。
•Ext之DOM
–Ext中使用了三个核心的工具类对我们掌握的DOM进行了完美的封装,OK,请记住他们的名字:
–Ext.Element(几乎对DOM的一切进行了彻底封装)
–Ext.DomHelper(嗯,他是一个强大的操控UI界面的工具类)
–Ext.DomQuery(用来进行DOM节点查询)
•Ext.Element常用方法:
•如果你深深迷恋着Ext,那么你一定知道Ext.Element这个类,4.x版本由于进行了底层的重构,从而让我看到了更加简洁清晰的代码,那就是这个js文件:AbstractElement.js,他里面有俩个顶顶大名的函数,让开发者再次感叹Ext底层的强大。他们就是Ext.get和Ext.fly。嗯!请记住他们的名字!!一个方法使用了缓存机制来提升获取DOM节点的效率,而另一个方法则使用了javascript经典的‘享元模式’来提升效率,从而节约内存,更加低碳化。
–Ext.get (Ext.Element.get)
–Ext.fly(Ext.Element.fly)
–Ext.getDom
•获取元素的总结:
–Ext.get比较消耗内存,尽量避免使用。
–Ext.fly虽然比较省内存,但是只能被使用一次。
–Ext.getDom非常适合直接获取页面元素,并返回的就是DOM元素,如果你想操作DOM元素的属性,那这个方法是最好不过的咯
Ext.onReady(function(){

    //Ext.dom.Element
//Ext.get 使用了缓存机制来提升获取DOM节点的效率 Ext.Element //get方法的描述:
/**
* 1 首先去Ext.cache缓存里去查找 ,如果缓存里有,直接返回即可
* 2 如果缓存里没有 ,那再去页面上去查找 , 如果页面里没有,返回null
* 3 如果页面里有,把当前内容加入到缓存里: { id : {data/events/dom} }
* 4 Ext.addCacheEntry加到缓存里的方法
*/
var d1 = Ext.get('d1'); //Ext.Element
alert(d1.dom.innerHTML); //Ext.fly
/**
* fly:使用了javascript经典的‘享元模式’来提升效率,从而节约内存,更加低碳化
* 返回的对象:Fly对象 ,当然你可以理解成为返回的就是Ext封装好的Ext.Element对象
* 注意点:fly由于内部使用了享元模式 所以 只适合一次操作 ,从而节省内存
*/ var d2 = Ext.fly('d2');
d2.dom.innerHTML = 'AAA';
var d3 = Ext.fly('d3');
d3.dom.innerHTML = 'BBB'; //Ext.getDom
/**
* 直接从页面上获取元素的DOM元素
*/
var dom = Ext.getDom('d3'); //HTMLElement
dom.innerHTML="CCCC"; });

Ext JS学习第十二天 Ext基础之操作dom ; get与fly 方法的更多相关文章

  1. Ext JS学习第八天 Ext基础之 认识Ext.js 和Ext-more.js

    此文来记录学习笔记: •认识Ext.js 和Ext-more.js •首先,我们要知道这2个js文件的作用,这俩个文件包含了Ext的一些基础定义.基本的属性和方法,我们要重点学习和深入底层代码进行研究 ...

  2. Ext JS学习第九天 Ext基础之 扩展原生的javascript对象

    此文来记录学习笔记: •Ext对于原生的javascript对象进行了一系列的扩展,我们把他们掌握好,更能深刻的体会Ext的架构,从而对我们的web开发更好的服务, 源码位置,我们可以从开发包的这个位 ...

  3. Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G

    code&monkey   Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...

  4. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  5. Ext JS学习第十天 Ext基础之 扩展原生的javascript对象(二)

    此文来记录学习笔记: 今天继续说Ext.Array,Ext.Function,Ext.Date,Ext.Error ------------------------------------------ ...

  6. Ext JS学习第十五天 Ext基础之 Ext.DomQuery

    此文同来记录学习笔记 •Ext.dom.Query 嗯,这个类一看就是到时做什么事儿的,不用我去过多的解释了.这个类一共提供了8个方法供开发人员去使用. •要说最常用的方法,无非就是Ext.query ...

  7. Ext JS学习第十四天 Ext基础之 Ext.DomHelper

    此文用来记录学习笔记   •我们已经学过了Element这个类,无疑是非常强大的,里面提供了丰富的方法供我们使用,但是Ext为了更加的方便我们去操作DOM元素,特提供了DomHelper这个辅助的工具 ...

  8. Ext JS学习第十三天 Ext基础之 Ext.Element

    •Ext.Element提供了181个方法,嗯,还没完,只是在4.1版本中是这样,最新的4.2版本貌似又增加了新方法,可谓是相当丰富给力.那么根据操作类型基本可以分为查询系.DOM操作系.样式操作系. ...

  9. Ext JS学习第六天 Ext自定义类(一)

    此文来记录学习笔记 •我们在之前的学习,已经对ExtJS有了一个初步的认识,那么如果要学好ExtJS,对于javascript是必须的,也就是说,对于理解ExtJS底层基础架构的理解也是必须的.那么我 ...

随机推荐

  1. html回车事件

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  2. C# Excel或表格插件

    NOPI好像比较好用对WINFORM支持更好! http://www.cnblogs.com/dreamof/archive/2010/06/02/1750151.html NOPI教程 http:/ ...

  3. Python数据分析扩展库

    Anaconda和Python(x,y)都自带了下面的这些库. 1. NumPy 强大的ndarray和ufunc函数. import numpy as np xArray = np.ones((3, ...

  4. delphi关于文件操作集锦

        关于文件操作集锦 取得该快捷方式的指向EXE关键词:快捷方式 LNK unit Unit1; interface usesWindows, Messages, SysUtils, Varian ...

  5. CentOS6.6普通用户使用sudo命令借用root用户权限

    一.描写叙述 普通用户hadoop使用:tar -xzvf ns2.35.tar.gz命令解压文件,系统提示找不到该文件,无法打开该文件夹,于是想到使用sudo命令借用root用户的权限:sudo t ...

  6. CodeForces 22C System Administrator

    把v和2结点交换, 1和v连,其它点和v之间能够互相连. #include <iostream> #include <cstdlib> #include <cstring ...

  7. 我的Hook学习笔记

    关于Hook 一.基本概念: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序能够在上面设置子程以监视指定窗体的某种消息,并且所监视的窗体能够是其它进程所创建的.当消息到达后,在目标 ...

  8. ANDROID对文件的操作

    import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.Inp ...

  9. 对Devexpress ASP.NET组件的一些看法

    使用.net开发的应该都熟悉DevExpress这套组件,强大的功能,显著提高开发效率和提升用户体验. 不过好像大都用winform, 说起用asp.net组件来开发webform,很多人开口就说慢, ...

  10. ongl 表达式

    struts.xml简单配置 <!-- (默认false)设置ognl表达式是否支持静态方法 --> <constant name="struts.ognl.allowSt ...