reduce overhead in hash set/get
This commit is contained in:
parent
7b0b5b55c7
commit
1d9fa2a42e
11
js/App.js
11
js/App.js
|
@ -18,6 +18,15 @@ const App = {
|
|||
is_prefs: false,
|
||||
LABEL_BASE_INDEX: -1024,
|
||||
_translations: {},
|
||||
Hash: {
|
||||
get: function() {
|
||||
return dojo.queryToObject(window.location.hash.substring(1));
|
||||
},
|
||||
set: function(params) {
|
||||
const obj = dojo.queryToObject(window.location.hash.substring(1));
|
||||
window.location.hash = dojo.objectToQuery({...obj, ...params});
|
||||
}
|
||||
},
|
||||
l10n: {
|
||||
ngettext: function(msg1, msg2, n) {
|
||||
return self.__((parseInt(n) > 1) ? msg2 : msg1);
|
||||
|
@ -1269,6 +1278,6 @@ const App = {
|
|||
default:
|
||||
console.log("quickMenuGo: unknown action: " + opid);
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
|
|
19
js/Feeds.js
19
js/Feeds.js
|
@ -236,12 +236,12 @@ const Feeds = {
|
|||
//document.onkeypress = (event) => { return App.hotkeyHandler(event) };
|
||||
window.onresize = () => { Headlines.scrollHandler(); }
|
||||
|
||||
/* global hash_get */
|
||||
const hash_feed_id = hash_get('f');
|
||||
const hash_feed_is_cat = hash_get('c') == "1";
|
||||
const hash = App.Hash.get();
|
||||
|
||||
if (hash_feed_id != undefined) {
|
||||
this.open({feed: hash_feed_id, is_cat: hash_feed_is_cat});
|
||||
console.log('got hash', hash);
|
||||
|
||||
if (hash.f != undefined) {
|
||||
this.open({feed: parseInt(hash.f), is_cat: parseInt(hash.c)});
|
||||
} else {
|
||||
this.openDefaultFeed();
|
||||
}
|
||||
|
@ -305,9 +305,12 @@ const Feeds = {
|
|||
setActive: function(id, is_cat) {
|
||||
console.log('setActive', id, is_cat);
|
||||
|
||||
/* global hash_set */
|
||||
hash_set('f', id);
|
||||
hash_set('c', is_cat ? 1 : 0);
|
||||
if ('requestIdleCallback' in window)
|
||||
window.requestIdleCallback(() => {
|
||||
App.Hash.set({f: id, c: is_cat ? 1 : 0});
|
||||
});
|
||||
else
|
||||
App.Hash.set({f: id, c: is_cat ? 1 : 0});
|
||||
|
||||
this._active_feed_id = id;
|
||||
this._active_feed_is_cat = is_cat;
|
||||
|
|
12
js/tt-rss.js
12
js/tt-rss.js
|
@ -69,15 +69,3 @@ require(["dojo/_base/kernel",
|
|||
});
|
||||
});
|
||||
|
||||
/* exported hash_get */
|
||||
function hash_get(key) {
|
||||
const obj = dojo.queryToObject(window.location.hash.substring(1));
|
||||
return obj[key];
|
||||
}
|
||||
|
||||
/* exported hash_set */
|
||||
function hash_set(key, value) {
|
||||
const obj = dojo.queryToObject(window.location.hash.substring(1));
|
||||
obj[key] = value;
|
||||
window.location.hash = dojo.objectToQuery(obj);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue