diff options
author | Andrew Dolgov <[email protected]> | 2016-01-11 01:11:26 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2016-01-11 01:11:26 +0300 |
commit | 0b41bd3414ba9fcb9ea697da7ab8a4369c32bc95 (patch) | |
tree | a72ca93b8e36a12e18e3ee7a5454d3de22978b41 | |
parent | 5bdcb8fd7834964d69550a788d9c666c14964f21 (diff) |
add some hacks to hopefully mitigate headlines memory leaks
-rw-r--r-- | js/feedlist.js | 19 | ||||
-rwxr-xr-x | js/viewfeed.js | 2 |
2 files changed, 21 insertions, 0 deletions
diff --git a/js/feedlist.js b/js/feedlist.js index c9ff121d7..eb6cbdfee 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 3b647e080..181a932e0 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")); |