我应该删除所有事件处理程序吗?

时间:2013-07-01 10:21:42

标签: javascript jquery javascript-events event-handling

大多数情况下,当只有一个或两个事件处理程序时,我不会删除它。 但是现在我正在设计一个网页,它将使用ajax来获取HTML内容以附加到DOM中。

<body>
    <ul class="menu">
        <li><span id="mainMenuAcc">profile</span></li>
        <li><span id="mainMenuTop">contact</span></li>
    </ul>
    sdfgsegg <br/>
    <div id="container">
    </div>
</body> 


$.ajax({
    url:url,
    beforeSend: function(){
        showSpinner(true);
    },
    success: function(result){
        container.html(result);
        if (page1){
            page1_initUI();
        } else if (page2){
            page2_initUI();
        }
    },
    error: function(obj, errMsj){
        alert("Ajax connection fail. " + errMsj);
    },
    complete: function(){

        showSpinner(false);
    }

  });

如您所见,用户可以单击不同的列表项来切换页面,因此将重复插入和删除DOM对象。在{ajax调用成功后,page1_initUIpage2_initUI将运行事件处理程序绑定。

我担心这会导致一些内存泄漏或缺陷。任何人都可以告诉我如何在这个场景中做什么?我们的浏览器会自动垃圾收集事件处理程序吗?

0 个答案:

没有答案