Browse Source

Переделки debouncedPosChange

Book Pauk 6 years ago
parent
commit
98fd921f98

+ 13 - 4
client/components/Reader/Reader.vue

@@ -81,6 +81,7 @@ import SettingsPage from './SettingsPage/SettingsPage.vue';
 
 import bookManager from './share/bookManager';
 import readerApi from '../../api/reader';
+import _ from 'lodash';
 import {sleep} from '../../share/utils';
 
 export default @Component({
@@ -101,9 +102,7 @@ export default @Component({
                 if (textPage.bookPos != newValue) {
                     textPage.bookPos = newValue;
                 }
-                if (this.lastOpenedBook && this.lastOpenedBook.bookPos != newValue) {
-                    this.commit('reader/setOpenedBook', Object.assign({}, this.lastOpenedBook, {bookPos: newValue, bookPosSeen: this.bookPosSeen}));
-                }
+                this.debouncedCommitOpenedBook(newValue);
             }
         },
         routeParamPos: function(newValue) {
@@ -147,6 +146,16 @@ class Reader extends Vue {
 
         this.lastActivePage = false;
 
+        this.debouncedUpdateRoute = _.debounce(() => {
+            this.updateRoute();
+        }, 1000);
+
+        this.debouncedCommitOpenedBook = _.debounce((newValue) => {
+            if (this.lastOpenedBook && this.lastOpenedBook.bookPos != newValue) {
+                this.commit('reader/setOpenedBook', Object.assign({}, this.lastOpenedBook, {bookPos: newValue, bookPosSeen: this.bookPosSeen}));
+            }
+        }, 500);
+
         document.addEventListener('fullscreenchange', () => {
             this.fullScreenActive = (document.fullscreenElement !== null);
         });
@@ -205,7 +214,7 @@ class Reader extends Vue {
         if (event.bookPosSeen !== undefined)
             this.bookPosSeen = event.bookPosSeen;
         this.bookPos = event.bookPos;
-        this.updateRoute();
+        this.debouncedUpdateRoute();
     }
 
     get toolBarActive() {

+ 1 - 5
client/components/Reader/TextPage/TextPage.vue

@@ -44,7 +44,7 @@ const minLayoutWidth = 100;
 export default @Component({
     watch: {
         bookPos: function(newValue) {
-            this.debouncedEmitPosChange(newValue);
+            this.$emit('book-pos-changed', {bookPos: newValue, bookPosSeen: this.bookPosSeen});
             this.draw();
         },
         settings: function() {
@@ -79,10 +79,6 @@ class TextPage extends Vue {
         this.config = this.$store.state.config;
         this.reader = this.$store.state.reader;
 
-        this.debouncedEmitPosChange = _.debounce((newValue) => {
-            this.$emit('book-pos-changed', {bookPos: newValue, bookPosSeen: this.bookPosSeen});
-        }, 1000);
-
         this.debouncedStartClickRepeat = _.debounce((x, y) => {
             this.startClickRepeat(x, y);
         }, 800);