源码: core/src/Ext-more.js
L 44
一来就 44 行? 我也没办法, 上面都是注释。
Ext中的注释是非常多的。然这些注释都是文档注释。关键的注释很少。
L 45
Ext.userAgent 这里使用了 navigator.userAgent 说明, EXT 是基于 navigator.userAgent 判断浏览器。
L 46
Ext.cache 这个cache 干吗用? 它是Ext全部缓存 放的地方。
L 47
Ext.idSeed 这东西叫种子, Ext 为了让 id 唯一, 就使用 idSeed , 每使用一次,就 idSeed++ 。
L 48
Ext.BLANK_IMAGE_URL 空图片, 空图片在 IE6 中特别有用, 它可以让 inline-block 元素生效。
至于 Ext.BLANK_IMAGE_URL 后面的字符串,其实是请求这幅图片传给服务器的请求头信息。 它包含了文件信息呵 Base64 验证。 (感谢 darklx 的修正)
L 49
Ext.isStrict
严格模式。 不懂的你可以查看相关资料。
L 50 - 51
Ext.windowId
Ext.documentId
L 57
Ext.isReady 这个值开始是 false,在 Ext.ready 中会赋值 true 。
L 58
Ext.enableGarbageCollector
允许自动回收垃圾。
这个词说起来很高级。
但这里只是配置,具体怎么做见使用的时候再分析。
L 59
Ext.enableListenerCollection
同 L58
L 77 - 98
Ext.id 生成独一的 id 。
L 103 - 130
Ext.getXXX 你肯能会认为这些都是常量,为什么不直接放在成员里,比如:
Ext.body , 而要另外使用 Ext.getBody()
因为 Ext-more.js 执行时, document.body 肯能不存在(未载入)。
L 139 - 141
Ext.getCmp 获取已定义的组件
每个组件都有对应id, 它其实缓存了id到组件的对应。这个函数 简单 根据id 返回组件。
L 147- 148
Ext.getOrientation 这个函数主要用于移动平台。
它判断当前浏览器方向。
当然用了很简单但好的方法: 长<宽 就是 垂直的
L 161 - 179
Ext.destroy 释放任何东西
如果是 DOM, 会调用 DOM 自己的 释放。
L 194 - 204
Ext.callback
在某个作用域 执行一个回调函数, 当然如果回调函数不是函数,那忽视它。
Ext.defer 是一个延时执行的方法。
L 211 - 223
Ext.htmlEncode
Ext.htmlDecode
真正的实现在 Ext.String 这里不解释。
L 231 - 236
Ext.urlAppend 如果 URL 有? 则补 & 否则补 ?
L 240
仅仅是简写。因为 Ext.ns 经常被用
L 243
为了加速浏览器找到 undefined 的速度,定义一个 undefined 。
L 250 -279
浏览器检测。具体不说了, 不懂的可以搜索其它内容。
L 280 - 283
这里主要对 IE6 ,让它乖点: 不要让图片一闪一闪。
L 292
Ext.SSL_SECURE_URL 这是空链接, 因为Ext中的 控件都是 Javascript 生成, 而很多节点都是本来有 href/src 属性的。为了让这些属性不导致问题, 把它们改到 Ext.SSL_SECURE_URL 。即 javascript:"" 。
不过这是更好的办法:
javascript:;
L 322
Ext.USE_NATIVE_JSON
是否使用原生的 JSON 。
不得不承认, 原生的JSON有2个不好的地方: 属性必须使用引号; 不支持 函数。
所以 这个选项, 把最后的选择权给用户。
L 347 - 370
Ext.getDom 这是经常用的。
根据id 获取节点。
IE6 也返回 name = 参数的节点, 因此最后作个过滤。
L 381 - 398
Ext.removeNode
删除节点
同时删除缓存。
IE6/7 下 删除节点竟然还创建了一个 节点。
主要是为了 避免内存泄露。
先把节点 append 到另外的父节点。
这意味着,原来的节点已被删除。
然后父节点 使用 innerHTML = ""
删除子节点。
因为父节点是 DIV , 所以不用担心内存泄露。
L 404 - 544
Ext.isXXX 见上
L 560 - 562
Ext.value
返回值||默认值
L 570 - 572
Ext.escapeRe 替换转义。
比如 "a\'" -> "a\\'"
L 592 - 613
Ext.addBehaviors
它是 绑定事件的 快速法
通过 CSS选择器@事件: 触发函数 格式。
L 622 - 662
Ext.getScrollbarSize/getScrollBarWidth
作者居然再这里忽略了 b 的大小。
函数 getScrollbarSize 内 有 IE9 专用 HACK
L 686 - 696
Ext.copyTo 把指定属性名的 这些属性拷贝到对象。
L 704 - 709
Ext.destroyMembers
对成员 使用 Ext.destroy 释放
L 730 - 831
Ext.log 输出一个日志。
L 857 - 863
Ext.partition 把数组内 满足一个条件的成员和其他的分开。
L 878 - 889
Ext.invoke 对数组每个成员调用函数。
L911 - 949
Ext.zip
Ext.toSentence
过时的东西, 不讨论。
L 958
Ext.useShims
也是对 IE6 flash的 一个 HACK
L 969 - 972
Ext.application 载入同时创建一个 Ext.app.Application 。
完