From dbf8845e3b2bbe9a92995f21d0d15fa01a5561d7 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 21 Nov 2010 18:12:50 +0300 Subject: [PATCH] re-enable local storage (use sessionStorage for cache) --- functions.js | 7 +++---- tt-rss.js | 2 +- viewfeed.js | 24 ++++++++++++------------ 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/functions.js b/functions.js index 8e02b7932..11f1f4e0a 100644 --- a/functions.js +++ b/functions.js @@ -1200,12 +1200,11 @@ function backend_sanity_check_callback(transport) { } function has_local_storage() { - return false; -/* try { - return 'localStorage' in window && window['localStorage'] != null; + try { + return 'sessionStorage' in window && window['sessionStorage'] != null; } catch (e) { return false; - } */ + } } function catSelectOnChange(elem) { diff --git a/tt-rss.js b/tt-rss.js index c20994076..56c1f36ce 100644 --- a/tt-rss.js +++ b/tt-rss.js @@ -357,7 +357,7 @@ function init_second_stage() { loading_set_progress(30); if (has_local_storage()) - localStorage.clear(); + sessionStorage.clear(); console.log("second stage ok"); diff --git a/viewfeed.js b/viewfeed.js index e9c6e8e54..243f3d289 100644 --- a/viewfeed.js +++ b/viewfeed.js @@ -1267,7 +1267,7 @@ function cache_inject(id, article, param) { cache_added["TS:" + id] = ts; if (has_local_storage()) - localStorage.setItem(id, JSON.stringify(cache_obj)); + sessionStorage.setItem(id, JSON.stringify(cache_obj)); else article_cache.push(cache_obj); @@ -1282,7 +1282,7 @@ function cache_inject(id, article, param) { function cache_find(id) { if (has_local_storage()) { - var cache_obj = localStorage.getItem(id); + var cache_obj = sessionStorage.getItem(id); if (cache_obj) { cache_obj = JSON.parse(cache_obj); @@ -1307,7 +1307,7 @@ function cache_find_param(id, param) { if (param) id = id + ":" + param; - var cache_obj = localStorage.getItem(id); + var cache_obj = sessionStorage.getItem(id); if (cache_obj) { cache_obj = JSON.parse(cache_obj); @@ -1329,7 +1329,7 @@ function cache_find_param(id, param) { function cache_check(id) { if (has_local_storage()) { - if (localStorage.getItem(id)) + if (sessionStorage.getItem(id)) return true; } else { for (var i = 0; i < article_cache.length; i++) { @@ -1346,7 +1346,7 @@ function cache_check_param(id, param) { if (param) id = id + ":" + param; - if (localStorage.getItem(id)) + if (sessionStorage.getItem(id)) return true; } else { @@ -1365,12 +1365,12 @@ if (has_local_storage()) { var date = new Date(); var timestamp = Math.round(date.getTime() / 1000); - for (var i = 0; i < localStorage.length; i++) { + for (var i = 0; i < sessionStorage.length; i++) { - var id = localStorage.key(i); + var id = sessionStorage.key(i); if (timestamp - cache_added["TS:" + id] > 180) { - localStorage.removeItem(id); + sessionStorage.removeItem(id); } } @@ -1383,7 +1383,7 @@ if (has_local_storage()) { function cache_flush() { if (has_local_storage()) { - localStorage.clear(); + sessionStorage.clear(); } else { article_cache = new Array(); } @@ -1395,13 +1395,13 @@ function cache_invalidate(id) { var found = false; - for (var i = 0; i < localStorage.length; i++) { - var key = localStorage.key(i); + for (var i = 0; i < sessionStorage.length; i++) { + var key = sessionStorage.key(i); // console.warn("cache_invalidate: " + key_id + " cmp " + id); if (key == id || key.indexOf(id + ":") == 0) { - localStorage.removeItem(key); + sessionStorage.removeItem(key); found = true; break; }