From d9b2444c1a07bd85a8b200092e454f42b824d633 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Fri, 15 Jul 2022 17:36:49 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=85=D0=B0=D0=BD=D0=B8=D0=B7=D0=BC=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B8=20=D0=BE=D0=B1=D0=BB=D0=BE?= =?UTF-8?q?=D0=B6=D0=B5=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RecentBooksPage/RecentBooksPage.vue | 39 +++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/client/components/Reader/RecentBooksPage/RecentBooksPage.vue b/client/components/Reader/RecentBooksPage/RecentBooksPage.vue index f7ed8d8d..e96ad2c0 100644 --- a/client/components/Reader/RecentBooksPage/RecentBooksPage.vue +++ b/client/components/Reader/RecentBooksPage/RecentBooksPage.vue @@ -243,6 +243,7 @@ class RecentBooksPage { archive = false; covers = {}; + coversLoadFunc = {}; created() { this.commit = this.$store.commit; @@ -669,20 +670,36 @@ class RecentBooksPage { return false; let loadedCover = this.covers[coverPageUrl]; + + if (loadedCover == 'error') + return false; + if (!loadedCover) { (async() => { - //сначала заглянем в storage - let data = await coversStorage.getData(coverPageUrl); - if (data) { - this.covers[coverPageUrl] = this.makeCoverHtml(data); - } else {//иначе идем на сервер - try { - data = await readerApi.getUploadedFileBuf(coverPageUrl); - await coversStorage.setData(coverPageUrl, data); - this.covers[coverPageUrl] = this.makeCoverHtml(data); - } catch (e) { - console.error(e); + if (this.coversLoadFunc[coverPageUrl]) + return; + + this.coversLoadFunc[coverPageUrl] = (async() => { + //сначала заглянем в storage + let data = await coversStorage.getData(coverPageUrl); + if (data) { + this.covers[coverPageUrl] = this.makeCoverHtml(data); + } else {//иначе идем на сервер + try { + data = await readerApi.getUploadedFileBuf(coverPageUrl); + await coversStorage.setData(coverPageUrl, data); + this.covers[coverPageUrl] = this.makeCoverHtml(data); + } catch (e) { + console.error(e); + this.covers[coverPageUrl] = 'error'; + } } + }); + + try { + await this.coversLoadFunc[coverPageUrl](); + } finally { + this.coversLoadFunc[coverPageUrl] = null; } })(); }