论坛首页 Web前端技术论坛

利用"事件上提" 来简化事件注册(防止潜在的内存泄露).

浏览 11931 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-07-25  
是不是出现出所谓"一个系统一个页面"的情况吧.也就是很少跳转页面.比较纯Ajax情况.
0 请登录后投票
   发表时间:2008-07-28  
fins大,能否解释一下为什么“在删除dom元素时, 先移除dom元素上已经添加的事件 再删除dom元素本身. ”
0 请登录后投票
   发表时间:2008-07-28  
为了防止内存泄露 和内存无法回收的情况发生啊
0 请登录后投票
   发表时间:2008-07-28  
怪我问的问题太无脑了。。。
在什么时候会出现删除dom元素情况呢,我现在用jsp做简单开发(页面上有‘编辑’,‘保存’,‘删除’,‘上报’等简单按钮),会出现 fins大 说的内存泄露和内存无法回收的情况吗?
我们都是为每个按钮编写一个js方法的。
0 请登录后投票
   发表时间:2008-07-28  
这种情况其实没必要

不要对内存泄露太担心
1 不是所有的 dom上注册事件 都会引起内存泄露
2 如果不是大范围的使用 "使用js动态构建页面"的技术 内存泄露也泄露不了多少 无所谓的
0 请登录后投票
   发表时间:2008-07-28  
只有Gmail这种“大型”JS应用,才需要担心这种问题。曾经试过用一个IE开着GMAIL,一个晚上后,内存占用上G
0 请登录后投票
   发表时间:2008-07-30  
IE下的内存泄露原因就是循环引用,IE的垃圾回收器不能很好处理这种引用。
会产生泄露的循环引用,只有孤立的DOM对象(脱离DOM树)。
孤立的DOM对象间的循环引用,孤立的DOM对象与JS对象的循环引用。
为什么是孤立的DOM对象呢?在离开页面时(刷新,跳转)会删除整个DOM树,在DOM树上的对象也会被删除,就算有循环引用,此时被打断。
孤立的DOM对象有:一、用JS创建但未加入DOM树。二、从DOM树中删除的。
所以避免泄露,就尽量不要让这样的DOM对象产生。
有时候这样对象又不可避免,那就不要让这样对像产生循环引用。
最常见的循环引用是由闭包产生,其执行环境中的变量(包括参数)引用了DOM对象。
0 请登录后投票
   发表时间:2008-08-01  
onblur这种时间如何上提?
开发人员经常用onblur,当这个时间发生在两个都需要验证空的text上,切换会死锁,如果上提的话,如何注册这种时间?
0 请登录后投票
   发表时间:2008-08-01  
不是所有事件都能上提的
这个blur 就不适合上提

但是 你关于校验的这个设计不好

建议修改一下设计吧

不能强迫用户"必须输入正确 才可离开当前编辑器"
这个设计非常非常不人性化 不友好
0 请登录后投票
   发表时间:2008-08-04  
这个设计确实不好,现在的系统是由几个新来的员工完成,校验这块普遍喜欢使用onblur,改起来很困难。
不过谢谢你的建议
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics