From 0b41bd3414ba9fcb9ea697da7ab8a4369c32bc95 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 11 Jan 2016 01:11:26 +0300 Subject: [PATCH] add some hacks to hopefully mitigate headlines memory leaks --- js/feedlist.js | 19 +++++++++++++++++++ js/viewfeed.js | 2 ++ 2 files changed, 21 insertions(+) diff --git a/js/feedlist.js b/js/feedlist.js index c9ff121d..eb6cbdfe 100644 --- a/js/feedlist.js +++ b/js/feedlist.js @@ -51,6 +51,23 @@ function loadMoreHeadlines() { } } +function cleanup_memory(root) { + try { + var dijits = dojo.query("[widgetid]", dijit.byId(root).domNode).map(dijit.byNode); + + dijits.each(function (d) { + dojo.destroy(d.domNode); + }); + + $$("#" + root + " *").each(function (i) { + i.parentNode ? i.parentNode.removeChild(i) : true; + }); + } catch (e) { + console.log("cleanup_memory: exception"); + console.log(e); + } +} + function viewfeed(params) { try { var feed = params.feed; @@ -83,6 +100,8 @@ function viewfeed(params) { if (getActiveFeedId() != feed || !infscroll_req) { setActiveArticleId(0); _infscroll_disable = 0; + + cleanup_memory("headlines-frame"); } if (infscroll_req) { diff --git a/js/viewfeed.js b/js/viewfeed.js index 3b647e08..181a932e 100755 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -244,6 +244,8 @@ function headlines_callback2(transport, offset, background, infscroll_req) { function render_article(article) { try { + cleanup_memory("content-insert"); + dijit.byId("headlines-wrap-inner").addChild( dijit.byId("content-insert")); -- 2.39.5