我的電視上有一個儀表板,頁面需要每秒刷新一次。爲什麼這個javascript刷新泄漏內存?
在頁面的底部,我有:
function startRefresh() {
$.get('', function(data) {
var newDoc = document.open("text/html", "replace");
newDoc.write(data);
newDoc.close();
});
}
$(function() {
setTimeout(startRefresh,1000);
});
這個偉大的工程,除了每個頁面加載導致內存使用量由chrome://memory-redirect/
報上去。
有沒有辦法解決這個問題?我不想爲DIV創建單獨的頁面,只是重新加載該部分。
FYI HTTP頭刷新和document.location = document.location
都產生不可忽隱忽現
也許是一個錯誤。你在其他瀏覽器上試過了嗎? – Oriol
我試過你的示例,並且startRefresh函數只運行一次 – devconcept
我的猜測是事件調度程序堆放處理程序而不傾銷窗口對象以及文檔重置。在任何情況下,我會避免文檔寫入和使用iframe。 iframe將爲您帶來真正的重新加載。它會有相同的閃爍到白色的問題,但因爲你在一個iframe中,你可以利用css並用https://css-tricks.com/prevent-white-flash-iframe/解決它。你也可以隊列iframe屏幕外的更多有趣的轉換在您的電視應用程序。 – Radio