From fa97a944948e2545190248cafdbc780f16de082f Mon Sep 17 00:00:00 2001 From: Jason Date: Sat, 19 Mar 2016 16:58:01 -0500 Subject: [PATCH] Various performance improvements --- manage.html | 6 ++++++ manage.js | 7 +------ storage.js | 57 ++++++++++++++++++++++++++++++----------------------- 3 files changed, 39 insertions(+), 31 deletions(-) diff --git a/manage.html b/manage.html index 79c044db..feed85d8 100644 --- a/manage.html +++ b/manage.html @@ -153,6 +153,12 @@ + + diff --git a/manage.js b/manage.js index 35f8e9af..884a9b95 100644 --- a/manage.js +++ b/manage.js @@ -44,13 +44,8 @@ function createStyleElement(style) { var styleName = e.querySelector(".style-name"); styleName.appendChild(document.createTextNode(style.name)); if (style.url) { - var homepage = document.createElement("a"); + var homepage = template.styleHomepage.cloneNode(true) homepage.setAttribute("href", style.url); - homepage.setAttribute("target", "_blank"); - var homepageImg = document.createElement("img"); - homepageImg.src = "world_go.png"; - homepageImg.alt = "*"; - homepage.appendChild(homepageImg); styleName.appendChild(document.createTextNode(" " )); styleName.appendChild(homepage); } diff --git a/storage.js b/storage.js index 5cd345ee..14f9c1b3 100644 --- a/storage.js +++ b/storage.js @@ -36,38 +36,45 @@ function getStyles(options, callback) { }, null); } -function filterStyles(unfilteredStyles, options) { +function filterStyles(styles, options) { var enabled = fixBoolean(options.enabled); var url = "url" in options ? options.url : null; var id = "id" in options ? Number(options.id) : null; var matchUrl = "matchUrl" in options ? options.matchUrl : null; - // Return as a hash from style to applicable sections? Can only be used with matchUrl. - var asHash = "asHash" in options ? options.asHash : false; - var styles = asHash ? {disableAll: prefs.get("disableAll", false)} : []; - unfilteredStyles.forEach(function(style) { - if (enabled != null && style.enabled != enabled) { - return; - } - if (url != null && style.url != url) { - return; - } - if (id != null && style.id != id) { - return; - } - if (matchUrl != null) { - var applicableSections = getApplicableSections(style, matchUrl); - if (applicableSections.length > 0) { - if (asHash) { - styles[style.id] = applicableSections; - } else { - styles.push(style) + if (enabled != null) { + styles = styles.filter(function(style) { + return style.enabled != enabled; + }); + } + if (url != null) { + styles = styles.filter(function(style) { + return style.url != url; + }); + } + if (id != null) { + styles = styles.filter(function(style) { + return style.id != id; + }); + } + if (matchUrl != null) { + // Return as a hash from style to applicable sections? Can only be used with matchUrl. + var asHash = "asHash" in options ? options.asHash : false; + if (asHash) { + var h = {disableAll: prefs.get("disableAll", false)}; + styles.forEach(function(style) { + var applicableSections = getApplicableSections(style, matchUrl); + if (applicableSections.length > 0) { + h[style.id] = applicableSections; } - } - } else { - styles.push(style); + }); + return h; } - }); + styles = styles.filter(function(style) { + var applicableSections = getApplicableSections(style, matchUrl); + return applicableSections.length > 0; + }); + } return styles; }