[英]Single Page App - memory leak explanation
因此,我正在研究SPA,而且我知道有很多FrameWorks可以幫助構建SPA。 但是,在這里讓我們假設我只使用jQuery。
好的,因此,在一個頁面中,我通過Ajax調用創建了一個顯示用戶聯系人的表:
getContacts('', function(contactsObj)
{
contactsObj.forEach(function(contact)
{
$('#contactList > tbody').append('<tr>' +
'<td class="check-mail">' +
'<input type="checkbox" class="i-checks" id="1">' +
'</td>' +
'<td>' + escapeHTML(contact.name) + '</td>' +
'<td>' + escapeHTML(contact.email) + '</td>');
})
$('.i-checks').iCheck(
{
checkboxClass: 'icheckbox_square-green',
radioClass: 'iradio_square-green'
});
});
該代碼是真實的,並且確實有效。 讓我擔心的是iCheck(用於對復選框進行樣式化),在表中添加了行之后,我啟動了iCheck以使其正常運行。 因此,當用戶離開此頁面時(無需重新加載任何內容,這是一個頁面應用程序,還記得嗎?),此iCheck只會變成“鬼”……我知道對於事件,我可以調用off()方法刪除所有以前綁定的事件(這是避免內存泄漏?),但是對於我在這里所說的這種初始化,這也將是內存泄漏嗎?
在這種特定情況下,iCheck具有“銷毀”方法,該方法“刪除了iCheck的所有痕跡”(請參閱iCheck文檔 )。 如果在該用戶離開相關視圖時(在修改DOM之前)調用此方法,則應該沒有內存泄漏。
否則,幾乎可以肯定的是,在頁面過渡后,內存中將保留“掛起”事件處理程序,盡管如注釋中所述,它們的總內存使用量可能會忽略。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.