summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2016-01-11 01:11:26 +0300
committerAndrew Dolgov <[email protected]>2016-01-11 01:11:26 +0300
commit0b41bd3414ba9fcb9ea697da7ab8a4369c32bc95 (patch)
treea72ca93b8e36a12e18e3ee7a5454d3de22978b41 /js
parent5bdcb8fd7834964d69550a788d9c666c14964f21 (diff)
add some hacks to hopefully mitigate headlines memory leaks
Diffstat (limited to 'js')
-rw-r--r--js/feedlist.js19
-rwxr-xr-xjs/viewfeed.js2
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"));