iteye_17775 2009-08-12 10:22
浏览 298
已采纳

prototype.js框架注销事件stopObserving到底什么时候用?

我用js写一个类似[DataList]数据控件的时候,动态添加数据行的时候,
Event.observe(row, 'click',fn)这种方式给每个数据行,或则单元格注册一些操作事件,
当我动态刷新数据行的时候[涉及删除行],我怎么注销这些事件?
Event.stopObserving(element, eventName, handler)这个函数我是知道的,难道我要循环到每个行,注销上面的所以的事件,在清除行?疑惑中,请教
这种情况,我如果直接删除行,不注销数据行上的自定义 8) 事件,这样是不是会造成内存泄漏?

当然在页面结束可以
Event.observe(window, 'unload', Event.unloadCache, false); 注销所以,但是和我的设计目的不符合。
[b]问题补充:[/b]
你说的这个是页面关闭的时候,我说的是页面动态更新的时候

  • 写回答

2条回答 默认 最新

  • iteye_9737 2009-08-14 11:44
    关注

    不知道你使用什么版本的prototype。我所见的1.6.0.2版本中已经针对IE自动做了内存清理操作(其他浏览器的内存管理还不用担心):
    [code="javascript"]
    // line no:3896
    function destroyCache() {
    for (var id in cache)
    for (var eventName in cache[id])
    cache[id][eventName] = null;
    }

    if (window.attachEvent) {
    window.attachEvent("onunload", destroyCache);
    }
    [/code]
    所以理论上分析,我认为不需要你遍历、逐个调用stopObserving。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料