From aa96b33bc226102fd417308c8442f032363ea5e4 Mon Sep 17 00:00:00 2001 From: zadam Date: Tue, 3 Sep 2019 22:01:45 +0200 Subject: [PATCH] initial load of tabs can run partially asynchronously to speed things up --- src/public/javascripts/services/note_detail.js | 17 ++++++++++++----- src/public/javascripts/services/tree.js | 3 ++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/public/javascripts/services/note_detail.js b/src/public/javascripts/services/note_detail.js index cf2831d5c..708b49c7e 100644 --- a/src/public/javascripts/services/note_detail.js +++ b/src/public/javascripts/services/note_detail.js @@ -275,12 +275,19 @@ async function loadNoteDetail(origNotePath, options = {}) { if (!newTab && currentTreeNode && currentTreeNode.data.noteId !== loadedNote.noteId) { return; } + + const loadPromise = loadNoteDetailToContext(ctx, loadedNote, notePath).then(() => { + if (activate) { + // will also trigger showTab via event + return tabRow.activateTab(ctx.$tab[0]); + } + else { + return Promise.resolve(); + } + }); - await loadNoteDetailToContext(ctx, loadedNote, notePath); - - if (activate) { - // will also trigger showTab via event - await tabRow.activateTab(ctx.$tab[0]); + if (!options.async) { + await loadPromise; } } diff --git a/src/public/javascripts/services/tree.js b/src/public/javascripts/services/tree.js index 5ffd5241d..79078152d 100644 --- a/src/public/javascripts/services/tree.js +++ b/src/public/javascripts/services/tree.js @@ -391,7 +391,8 @@ async function treeInitialized() { await noteDetailService.loadNoteDetail(tab.notePath, { state: tab, newTab: true, - activate: tab.active + activate: tab.active, + async: true // faster initial load }); }