From 77c68d4e1159fa1aadca087c75af3a95bbe07e2f Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Mon, 25 Mar 2019 14:03:50 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B5=D0=B1=D0=BE=D0=BB=D1=8C=D1=88?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reader/ServerStorage/ServerStorage.vue | 2 +- client/components/Reader/share/bookManager.js | 30 ++++++++++++------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/client/components/Reader/ServerStorage/ServerStorage.vue b/client/components/Reader/ServerStorage/ServerStorage.vue index bff2f2df..d59b598d 100644 --- a/client/components/Reader/ServerStorage/ServerStorage.vue +++ b/client/components/Reader/ServerStorage/ServerStorage.vue @@ -90,7 +90,7 @@ class ServerStorage extends Vue { this.prevServerStorageKey = this.serverStorageKey; this.hashedStorageKey = utils.toBase58(cryptoUtils.sha256(this.serverStorageKey)); this.keyInited = true; - + await this.loadProfiles(force); this.checkCurrentProfile(); await this.currentProfileChanged(force); diff --git a/client/components/Reader/share/bookManager.js b/client/components/Reader/share/bookManager.js index 49bab084..59ad205e 100644 --- a/client/components/Reader/share/bookManager.js +++ b/client/components/Reader/share/bookManager.js @@ -79,19 +79,22 @@ class BookManager { } } - let key = null; - len = await bmRecentStore.length(); - for (let i = 0; i < len; i++) { - key = await bmRecentStore.key(i); - if (key) { - let r = await bmRecentStore.getItem(key); - if (_.isObject(r) && r.key) { - this.recent[r.key] = r; + //"ленивая" загрузка + (async() => { + let key = null; + len = await bmRecentStore.length(); + for (let i = 0; i < len; i++) { + key = await bmRecentStore.key(i); + if (key) { + let r = await bmRecentStore.getItem(key); + if (_.isObject(r) && r.key) { + this.recent[r.key] = r; + } + } else { + await bmRecentStore.removeItem(key); } - } else { - await bmRecentStore.removeItem(key); } - } + })(); //размножение для дебага /*if (key) { @@ -410,6 +413,11 @@ class BookManager { this.recentLast = value; await bmCacheStore.setItem('recent-last', this.recentLast); if (value && value.key) { + //гарантия переключения книги + const mostRecent = this.mostRecentBook(); + if (mostRecent) + this.recent[mostRecent.key].touchTime = value.touchTime - 1; + this.recent[value.key] = value; await bmRecentStore.setItem(value.key, value); await bmCacheStore.setItem('recent', this.recent);