2014-01-29 221 views
3

如果我發出ajax請求來移除主體HTML並追加新的HTML,那麼是否還需要刪除添加到以前的HTML的所有事件處理程序?DOM更改時是否需要清理我的事件處理程序?

我注意到,如果我不這樣做,一切工作正常。瀏覽器是否釋放內存和內容?如果我在不刷新瀏覽器的情況下執行數千次這樣的Ajax請求會怎麼樣?我會得到內存泄漏嗎?

回答

1

如果添加jQuery的事件處理程序:

  • 他們,如果你使用jQuery刪除/清洗更換功能
  • ,如果你直接使用DOM功能

他們不會被清理在大多數功能文件中,您有與this one類似的評論:

Whe n .html()用於設置元素的內容,該元素中的所有 內容都將被新內容完全替換。 此外,jQuery刪除其他構造,如數據和事件 來自子元素的處理程序,然後用 新內容替換這些元素。

如果你是連貫的,你將沒有內存泄漏,你不必手動刪除數據或事件處理程序。將頁面保持打開幾天併發出數千個Ajax請求並相應地更改屏幕通常沒有問題。

+0

謝謝。明確的答案和直接點:)哦,這個網頁不會開放幾天,我只是想創建一個「活的」管理區域 – thelolcat

相關問題