- 浏览: 321606 次
- 性别:
文章分类
最新评论
-
i042416:
分析在哪?
angular分析 -
何盆盆:
你好,请问您这是Extjs3还是Extjs4
ExtJs源码分析与学习—ExtJs事件机制(一) -
124753561:
引用引用引用引用引用[u][u][u][u][i][i][i] ...
Subvision SVN 服务端与客户端的安装 -
谷超:
请问一下例子中itext是什么版本的?
利用iText生成word文档例子参考 -
geosmart:
正好要用到执行字符串中方法,学习了
java中利用反射机制实现调用给定为字符串的方法名
前面三篇文章参考作者snandy总结了Ext中核心代码Ext.js,今天对Ext.js的扩展Ext-more.js进行分析。这里首先感谢snandy ,这位作者文章写的不错,对Ext的理解也很深入,学习了。
该类中主要是对Ext核心方法进行了扩展
Ext.ns("Ext.grid", "Ext.list", "Ext.dd", "Ext.tree", "Ext.form", "Ext.menu", "Ext.state", "Ext.layout", "Ext.app", "Ext.ux", "Ext.chart", "Ext.direct");
这段代码为Ext提供的组件创建了命名空间,这些组件后续会分析
Ext.apply(Ext, function(){ var E = Ext, idSeed = 0, scrollWidth = null; return { emptyFn : function(){}, ... ... }; }());
调用了Ext的apply方法对Ext方法进行了扩展,该处创建了匿名函数,并执行了改匿名函数,该匿名函数返回值为函数,关于这种写法的实现,请参照以下代码的分析。
var anonymityFn = function(){ return { demoFn : function(){alert('返回为对象中的方法demoFn');} }; }; anonymityFn.demo2Fn = function(){alert('demo2Fn为anonymityFn静态方法');}; alert(typeof anonymityFn);//function alert(typeof anonymityFn());//object anonymityFn.demo2Fn();//demo2Fn为anonymityFn静态方法 anonymityFn.demoFn();//anonymityFn.demoFn is not a function anonymityFn().demoFn();//返回为对象中的方法demoFn
分析上面最后两行执行语句,由于anonymityFn本身为函数,而该函数中没有定义方法demoFn,故会报找不到该函数的错误,而anonymityFn()调用了函数,返回的是对象,且该对象中定义了方法demoFn,故会输出结果
emptyFn : function(){},
定义空函数
BLANK_IMAGE_URL : Ext.isIE6 || Ext.isIE7 || Ext.isAir ? 'http:/' + '/www.extjs.com/s.gif' : 'data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==',
在应用服务中应该设置为本地图片,该参数的作用为:ExtJS中在创建组件的时候,组件中需要替换图标的地方,初始化时都是拿这个s.gif替代的,如果用户指定icon属性,它会将s.gif替换为icon的地址,说白了,s.gif就是一个占位的功能,参见源码总结牛人ting570732 ExtJS3.2源码每天一小时]ExtJS中BLANK_IMAGE_URL的由来(十三)
以下只列出了Ext核心代码扩展的方法 ,详细实现可查看源代码
1、 getDoc() 返回当前HTML document 对象 Ext.Element类型,见代码 Ext.Element.get(document); 2、 num(v, defaultValue) 验证v是否为数值,不是返回defaultValue 3、 value (v, defaultValue, allowBlank) 判断v是否为空,空则返回defaultValue 4、 escapeRe : function(s) 避免传递的字符串参数被正则表达式读取 5、 sequence : function(o, name, fn, scope) 把o[name]转换为一组合函数,详见createSequence 6、 addBehaviors : function(o) 页面被初始化完毕后,在元素上绑定事件监听。事件名在'@'符号后 7、 getScrollBarWidth: function(force) 该方法比较实用,精确的计算了滚动条的宽度,类似也可以计算滚动条的高度。计算浏览器滚动体实际的物理宽度。该值根据OS的不同有所变化,例如主题、字体大小的影响。 8、 copyTo : function(dest, source, names) 复制源对象身上指定的属性到目标对象。 9、 destroy : function()尝试去移除每个传入的对象,包括DOM,事件侦听者,并呼叫他们的destroy方法(如果存在)。该方法主要接纳{@link Ext.Element}与{@link Ext.Component}类型的参数。但理论上任何继承自Ext.util.Observable的子类都可以做为参数传入(支持传入多参)。 10、 destroyMembers : function(o, arg1, arg2, etc) 删除对象的指定属性(支持传入多参,同时删除多个属性)。 11、 clean : function(arr) 复制传入的数组,并删除没有意义的元素,比如 0 null undefined 等 12、 unique : function(arr) 复制传入的数组,并且过滤掉有重复的值 13、 flatten : function(arr) 递归合并一维数组,元素是数组的形式递归调用并合并插入到当前位置 14、 min : function(arr, comp) 返回数组中的最小值 15、 max : function(arr, comp) 返回数组中的最大值 16、 mean : function(arr) 计算数组平均值 17、 sum : function(arr) 数组求和 18、 partition : function(arr, truth) 把数组或NodeList分成两部分,按照不同的取值,比如数组中的奇偶,不同的class等 19、 invoke : function(arr, methodName) 对数组中的每个元素调用指定的一个方法 20、 pluck : function(arr, prop) 取出数组元素指定属性prop对应的值 21、 getCmp : function(id) Ext.ComponentMgr.get 的简写 22、 type : function(o) 返回参数类型的详细信息。如果送入的对象是null或undefined那么返回false, 或是其他类型(见源代码) 以下为 Function增加的方法 23、 createSequence : function(fcn, scope) 创建一个组合函数,调用次序为:原函数 + 参数中的函数。该函数返回了原函数执行的结果(也就是返回了原函数的返回值)。在参数中传递的函数fcn,它的参数也是原函数的参数。 String增加的方法 24、 escape : function(string) 把输入的 ' 与 \ 字符转义。 leftPad : function (val, size, ch) 在字符串左边填充指定字符。这对于统一字符或日期标准格式非常有用。 25、 String.prototype.toggle = function(value, other){ return this == value ? other : value; }; 比较并交换字符串的值。参数中的第一个值与当前字符串对象比较,如果相等则返回传入的第一个参数,否则返回第二个参数。 26、 String.prototype.trim = function(){ var re = /^\s+|\s+$/g; return function(){ return this.replace(re, ""); }; }(); 裁剪字符串两旁的空白符,保留中间空白符 27、 Date.prototype.getElapsed = function(date) { return Math.abs((date || new Date()).getTime()-this.getTime()); }; 返回date对象创建时间与现在时间的时间差,单位为毫秒。 Number.prototype 28、 constrain : function(min, max){ return Math.min(Math.max(this, min), max); } 如果数值在min和max之间,则返回该数值,如果不在该范围内,则返回靠近min或max的值
发表评论
-
ExtJs源码分析与学习—Ext.ToolTip应用
2011-12-29 14:18 1841源码待分析,先粘一例子备用 // ... -
ExtJs源码分析与学习—遮罩层
2011-09-06 16:49 4877类Ext.LoadMask ... -
ExtJs源码分析与学习—Ext.UpdateManager
2011-09-06 16:12 2182如果想让html页面中任意元素自动局部刷新,而不是整 ... -
ExtJs源码分析与学习—ExtJs元素Element(六)
2011-06-08 10:41 1796批量操作元素Ext.CompositeElementLite ... -
ExtJs源码分析与学习—ExtJs元素Element(五)
2011-06-07 17:35 1932元素的查询Ext.DomQuery 该 ... -
ExtJs源码分析与学习—ExtJs元素Element(四)
2011-06-07 17:17 3032元素的操作Ext.DomHelper ... -
ExtJs源码分析与学习—ExtJs元素Element(三)
2011-06-07 17:06 1050Ext.Element扩展 通过Ex ... -
ExtJs源码分析与学习—ExtJs元素Element(二)
2011-06-07 16:42 2639元素操作核心类Ext.Elemen ... -
ExtJs源码分析与学习—ExtJs元素Element(一)
2011-06-07 15:47 2128从这一节开始 ... -
ExtJs源码分析与学习—工具类Ext.util.TextMetrics
2011-06-07 15:11 2039Ext提供了一个 ... -
ExtJs源码分析与学习—ExtJs事件机制(六)
2011-06-07 11:25 1482最后把涉及到Ext事件的相关类图贴到这里 ... -
ExtJs源码分析与学习—ExtJs事件机制(五)
2011-06-07 11:15 3056最近一直忙着做产品,所以好久没有写文章了,下面接着 ... -
Ext 组件操作总结——会不断完善
2011-05-10 16:36 26921、Ext.Component 该组件在渲染的时候会默认的 ... -
ExtJs表单几种验证与扩展
2011-05-03 16:26 4898首先说明一下表单验证与其相关的一些设置 Ext ... -
ExtJs源码分析与学习—ExtJs事件机制(四)
2011-03-19 23:37 5307ExtJs组件事件——ExtJs自定义事件的处理 ... -
ExtJs源码分析与学习—ExtJs事件机制(三)
2011-03-15 20:20 3256这篇讲ExtJs对事件的管理和调用 Ext ... -
ExtJs源码分析与学习—ExtJs事件机制(二)
2011-03-15 20:15 2615在ExtJs源码分析与学习—ExtJs事件机制( ... -
ExtJs源码分析与学习—ExtJs事件机制(一)
2011-03-15 18:53 2831前面讲了ExtJs核 ... -
ExtJs源码分析与学习—ExtJs核心代码(三)
2011-01-17 17:29 2177Ext为javascript的一些对象进行了扩展,主要有Str ... -
ExtJs源码分析与学习—ExtJs核心代码(二)
2011-01-17 16:23 1857接上篇 下面介绍Ext.js ...
相关推荐
6. **图表组件**:EXTJS 2.0内置了各种图表类型,如柱状图、饼图、线图等,适用于数据可视化需求,源码分析有助于定制高级图表功能。 7. **Ajax交互**:EXTJS 2.0通过Ajax技术实现与服务器的异步通信,提供了强大的...
**Django整合ExtJS源码解析** 在Web开发领域,Django作为一个强大的Python Web框架,以其高效、安全和可扩展性而备受青睐。与此同时,ExtJS是一个JavaScript库,用于构建富客户端应用程序,提供了丰富的组件和数据...
核心技术部分深入讲解Ext JS的核心基础知识,包括JS原生对象的扩展、事件机制、 模板模型、数据模型,包括一个机制、两个模型及六个扩展。基于元素的开发部分讲解了在DOM元素基 础上扩展的Ext JS元素,包括元素操作...
- **JS类系统**:ExtJS使用面向对象的类系统,类与类之间可以通过继承实现代码重用和扩展。 - **事件系统**:事件驱动是ExtJS的核心机制,允许组件间通信和响应用户操作。 - **Ajax通信**:Ext.Ajax模块负责异步...
最后,结合源码分析,提升你的编程水平,能够更好地应对复杂的应用需求。 总之,ExtJs是一个强大的JavaScript框架,通过学习提供的实例和中文教程,结合具体的代码实践,你将能够开发出功能丰富、用户体验优秀的Web...
10. **最佳实践**:源码分析也能让我们学习到ExtJS开发的最佳实践,例如如何有效地组织代码,如何优化数据加载,以及如何保持组件的可维护性。 通过深入研究这个"extjs grid.panel 项目 源码",我们可以提升对ExtJS...
康海涛的"掏钱学ExtJs完全版"可能是一份全面的学习资料,涵盖了ExtJs的基础到高级应用,包括源码分析,旨在帮助学习者深入理解和掌握这一技术。 首先,ExtJs的核心是其组件模型。它提供了大量的预定义组件,如表格...
通过下载并研究"ext-3.1.0"这个压缩包中的源码和示例,开发者不仅可以学习到ExtJS的基本用法,还能深入理解其内部机制,这对于提升JavaScript开发技能和扩展自定义功能非常有帮助。不过需要注意,随着技术的发展,...
ExtJS5是一款强大的JavaScript框架,主要用于构建富客户端的Web应用程序,尤其在开发复杂的后台管理系统时,它的优势尤为显著。...案例中的源码分析和实践将加深对框架的理解,为后续的Web开发工作打下坚实基础。
在“ExtJS4.0-WEB开发项目源代码”这个资源中,你将有机会接触到基于ExtJS 4.0版本的项目实例,这对于学习和理解ExtJS的应用开发是非常有价值的。 首先,让我们深入了解ExtJS 4.0的关键特性: 1. **组件化**:...
深入研究"ext-src"中的源码,不仅可以帮助开发者理解ExtJS3.0的工作原理,还能学习到面向对象的JavaScript编程技巧,以及如何构建可维护、可扩展的大型前端项目。同时,对比不同版本的源码变化,也能洞察框架的发展...
"深入浅出ExtJS随书源码--EXTJS2.0"是针对ExtJS 2.0版本的学习资源,通常与一本相关书籍配套,帮助读者通过实际代码加深对ExtJS的理解。 源码分析: 1. **组件系统**:ExtJS的核心是其组件模型,其中包括各种可...
总之,这个基于ExtJS的酒店管理系统源码提供了一个实际的应用示例,对于学习和实践Web应用开发,特别是ExtJS框架的运用,具有很高的参考价值。通过深入研究和理解源码,开发者不仅可以提升技术能力,也能为自己的...
6. **源码分析**:可能包含对ExtJS源码的解读,帮助开发者了解其内部工作原理,提高问题排查和扩展能力。 源码文件《源码.rar》则可能是配套的示例代码,包含了各种ExtJS应用实例,这些实例可能对应PDF文档中的各个...
SSH整合ExtJS开发的进销存系统是一种基于Java技术...系统的可扩展性和维护性也得到了保障,因为SSH的分层架构和模块化设计使得代码易于管理和升级。总的来说,这种技术组合在现代企业信息化建设中有着广泛的应用价值。
EXTJS的源码分析可以帮助我们理解如何使用EXTJS构建复杂的用户界面,学习其组件的配置和事件处理。例如,我们可以通过查看`GridPanel`(数据表格)的配置来学习如何展示和操作数据;通过研究`FormPanel`(表单)来...
描述中的"ext包再解压就是相关js代码和实例"意味着压缩包内包含EXTJS框架的源代码以及一系列示例代码,这些实例是学习EXTJS的重要资源。通过分析和运行这些示例,开发者可以快速理解和掌握EXTJS的API用法,了解如何...
2. **源码分析** "ext-4.2.2-gpl"目录下的源码可以供开发者深入理解ExtJS的工作原理。通过阅读源码,开发者可以学习到如何组织和构建复杂的JavaScript应用,以及如何扩展和定制现有的组件。这对于想要进行性能优化...
此外,示例代码和教程也是学习ExtJS的重要资源。 8. **测试版**: 作为试验版,这个SDK可能包含一些预发布特性,开发者可以提前试用并提供反馈,但可能不建议在生产环境中直接使用。 9. **应用场景**: ExtJS广泛...
【酒店管理系统(ExtJs)源码】是一款基于前端框架...总的来说,【酒店管理系统(ExtJs)源码】是一个结合了ExtJs前端技术与SQLSERVER数据库管理的综合应用,展示了如何通过现代Web技术构建高效、易用且可扩展的业务系统。