浏览代码

Увеличил количество хранимых недавних до 1000

Book Pauk 6 年之前
父节点
当前提交
73bfc07082
共有 2 个文件被更改,包括 19 次插入3 次删除
  1. 4 2
      client/components/Reader/HistoryPage/HistoryPage.vue
  2. 15 1
      client/components/Reader/share/bookManager.js

+ 4 - 2
client/components/Reader/HistoryPage/HistoryPage.vue

@@ -126,8 +126,10 @@ class HistoryPage extends Vue {
     updateTableData() {
         let result = [];
 
-        for (let bookKey in bookManager.recent) {
-            const book = bookManager.recent[bookKey];
+        const sorted = bookManager.getSortedRecent();
+        const len = (sorted.length < 100 ? sorted.length : 100);
+        for (let i = 0; i < len; i++) {
+            const book = sorted[i];
             let d = new Date();
             d.setTime(book.touchTime);
             const t = formatDate(d).split(' ');

+ 15 - 1
client/components/Reader/share/bookManager.js

@@ -193,7 +193,7 @@ class BookManager {
         if (!this.recent) 
             await this.init();
 
-        if (Object.keys(this.recent).length > 100) {
+        if (Object.keys(this.recent).length > 1000) {
             let min = Date.now();
             let found = null;
             for (let key in this.recent) {
@@ -230,6 +230,20 @@ class BookManager {
         return result;
     }
 
+    getSortedRecent() {
+        if (!this.recentChanged && this.sortedRecentCached) {
+            return this.sortedRecentCached;
+        }
+
+        let result = Object.values(this.recent);
+
+        result.sort((a, b) => b.touchTime - a.touchTime);
+
+        this.sortedRecentCached = result;
+        return result;
+    }
+
+
 }
 
 export default new BookManager();