谈谈javascript事件绑定和Prototype的事件绑定
来源:互联网 发布:aws windows server 编辑:程序博客网 时间:2024/06/05 12:43
在javascript中我们习惯用
object.attachEvent("OnDisConnected", DisConnected);
这样的方式来绑定组件触发OnDisConnected事件的处理方法,DisConnected。
但是有一点,这样写的话要在页面的onunload事件中就需要对其进行卸载--detachEvent。
否则这个过程就会一直驻留在内存中。有可能会导致内存泄露。
These handlers will stay in RAM, filling it up slowly, clogging the browser’s arteries. This is known as a memory leak.(Protytype中的解释)。
Prototype对绑定事件进行了封装。
Event.observe(object, 'DisConnected',DisConnected);
observe: function(element, name, observer, useCapture) ...{
element = $(element);
useCapture = useCapture || false;
if (name == 'keypress' &&
(Prototype.Browser.WebKit || element.attachEvent))
name = 'keydown';
Event._observeAndCache(element, name, observer, useCapture);
},
element = $(element);
useCapture = useCapture || false;
if (name == 'keypress' &&
(Prototype.Browser.WebKit || element.attachEvent))
name = 'keydown';
Event._observeAndCache(element, name, observer, useCapture);
},
这样,prototype就会自己来处理卸载绑定。
unloadCache: function() ...{
if (!Event.observers) return;
for (var i = 0, length = Event.observers.length; i < length; i++) ...{
Event.stopObserving.apply(this, Event.observers[i]);
Event.observers[i][0] = null;
}
Event.observers = false;
},
当页面unload时就会从内存中将其卸载。
What’s even better is, Prototype automatically hooks unloadCache to page unloading, exclusively for MSIE. So you don’t have anything to do.
- 谈谈javascript事件绑定和Prototype的事件绑定
- jQuery事件绑定和JavaScript原生事件绑定的区别
- javascript事件的绑定
- javascript的事件绑定
- javascript事件的绑定
- JavaScript事件的绑定
- javascript事件和对象绑定
- JavaScript事件绑定和普通事件区别
- javascript普通事件和绑定事件
- JavaScript事件绑定和普通事件区别
- JavaScript事件绑定和普通事件区别
- JavaScript事件绑定和普通事件区别
- javascript-事件绑定和普通事件
- JavaScript事件的绑定与取消和事件监听
- JavaScript事件绑定和事件监听的区别
- 关于JavaScript的事件绑定
- 关于javascript的事件绑定
- prototype事件绑定each用法
- Java的中文处理学习笔记:Hello Unicode
- 集成的故事 - 医疗集成的未来
- 正确运用stl map的erase方法
- 结构体赋值
- 在SQL Server 2005中用存储过程实现搜索功能
- 谈谈javascript事件绑定和Prototype的事件绑定
- SQL Server 2000 中使用正则表达式
- T-SQL中的正则表达式
- 程序改错题(求助)
- Windows-tree命令生成目录树
- java程序标准增删改查示例
- MFC添加基于CListView创建新类时报"CListView: base class undefined"的解决
- 数据流图(DFD)画法要求
- Java的中文处理学习笔记:Hello Unicode(2)