From 3266a444d0fe8c5523911808415140eefddf0d4c Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Fri, 6 Sep 2019 22:36:48 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reader/ServerStorage/ServerStorage.vue | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/client/components/Reader/ServerStorage/ServerStorage.vue b/client/components/Reader/ServerStorage/ServerStorage.vue index 731e05c2..fd2218f4 100644 --- a/client/components/Reader/ServerStorage/ServerStorage.vue +++ b/client/components/Reader/ServerStorage/ServerStorage.vue @@ -444,10 +444,25 @@ class ServerStorage extends Vue { if (utils.isEmptyObjDiff(diff)) return; + //вычисление критерия сохранения целиком + let forceSaveRecent = JSON.stringify(diff).length > 1000; + if (!forceSaveRecent && itemKey) { + if (!this.sameKeyCount) + this.sameKeyCount = 0; + if (this.prevItemKey == itemKey) + this.sameKeyCount++; + + forceSaveRecent = this.sameKeyCount > 5 && (Object.keys(diff.change).length > 1); + + this.sameKeyCount = (!forceSaveRecent ? this.sameKeyCount : 0); + this.prevItemKey = itemKey; + } + + //сохранение this.recentDiff = diff; this.savingRecent = true; try { - if (JSON.stringify(this.recentDiff).length > 1000) {//сохраняем recent целиком + if (forceSaveRecent) {//сохраняем recent целиком let result = {state: ''}; try {