From b25ef754488f0ad67989ea95a5092efca955f0d6 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Wed, 22 Jun 2016 21:30:34 +0100 Subject: [PATCH] Tweak filter application to improve init speed Schedule the filter application instead of running it immediately, and pre-initialise the lists, as this causes the UI to initialise faster, despite appearing like it should be slower. --- src/gui/html/js/initialise.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/gui/html/js/initialise.js b/src/gui/html/js/initialise.js index 0d2d397c..0b5bb543 100644 --- a/src/gui/html/js/initialise.js +++ b/src/gui/html/js/initialise.js @@ -179,10 +179,15 @@ appData.Filters.fillConflictsFilterList(appData.game.plugins); appData.filters.load(appData.settings.filters); + /* Initialise the lists before checking if any filters need to be applied. + This causes the UI to be initialised faster thanks to scheduling + behaviour. */ + dom.initialiseVirtualLists(appData.game.plugins); if (appData.filters.areAnyFiltersActive()) { - appData.filters.apply(appData.game.plugins); - } else { - dom.initialiseVirtualLists(appData.game.plugins); + /* Schedule applying the filters instead of applying them immediately. + This improves the UI initialisation speed, and is quick enough that + the lists aren't visible pre-filtration. */ + setTimeout(appData.filters.apply, 0, appData.game.plugins); } Dialog.closeProgress();