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 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画