diff --git a/client/components/Reader/Reader.vue b/client/components/Reader/Reader.vue index fc37ac4b..ee280323 100644 --- a/client/components/Reader/Reader.vue +++ b/client/components/Reader/Reader.vue @@ -220,14 +220,19 @@ export default @Component({ bookPos: function(newValue) { if (newValue !== undefined && this.activePage == 'TextPage') { const textPage = this.$refs.page; + if (textPage.bookPos != newValue) { textPage.bookPos = newValue; } - this.debouncedSetRecentBook(newValue); + + if (!this.scrollingActive) + this.debouncedSetRecentBook(newValue); + else + this.scrollingSetRecentBook(newValue); } }, routeParamPos: function(newValue) { - if (newValue !== undefined && newValue != this.bookPos) { + if (!this.paramPosIgnore && newValue !== undefined && newValue != this.bookPos) { this.bookPos = newValue; } }, @@ -291,10 +296,6 @@ class Reader extends Vue { this.lastActivePage = false; - this.debouncedUpdateRoute = _.debounce(() => { - this.updateRoute(); - }, 1000); - this.debouncedSetRecentBook = _.debounce(async(newValue) => { const recent = this.mostRecentBook(); if (recent && (recent.bookPos != newValue || recent.bookPosSeen !== this.bookPosSeen)) { @@ -302,8 +303,17 @@ class Reader extends Vue { if (this.actionCur < 0 || (this.actionCur >= 0 && this.actionList[this.actionCur] != newValue)) this.addAction(newValue); + + this.paramPosIgnore = true; + this.updateRoute(); + await this.$nextTick(); + this.paramPosIgnore = false; } - }, 500); + }, 500, {'maxWait':5000}); + + this.scrollingSetRecentBook = _.debounce((newValue) => { + this.debouncedSetRecentBook(newValue); + }, 15000, {'maxWait':20000}); document.addEventListener('fullscreenchange', () => { this.fullScreenActive = (document.fullscreenElement !== null); @@ -343,6 +353,8 @@ class Reader extends Vue { await this.showWhatsNew(); await this.showMigration(); + + this.updateRoute(); })(); } @@ -507,7 +519,6 @@ class Reader extends Vue { if (event.bookPosSeen !== undefined) this.bookPosSeen = event.bookPosSeen; this.bookPos = event.bookPos; - this.debouncedUpdateRoute(); } async bookManagerEvent(eventName, value) { @@ -654,6 +665,10 @@ class Reader extends Vue { page.stopTextScrolling(); } } + + if (!this.scrollingActive) { + this.scrollingSetRecentBook.flush(); + } } stopSearch() { diff --git a/docs/omnireader/omnireader b/docs/omnireader/omnireader index a277f3cd..291acc0a 100644 --- a/docs/omnireader/omnireader +++ b/docs/omnireader/omnireader @@ -15,7 +15,7 @@ server { gzip_types *; location /api { - proxy_pass http://localhost:44081; + proxy_pass http://127.0.0.1:44081; } location / { @@ -44,7 +44,7 @@ server { gzip_types *; location /api { - proxy_pass http://localhost:44081; + proxy_pass http://127.0.0.1:44081; } location /tmp {