簡體   English   中英

單頁應用程序-內存泄漏說明

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM