Kaynağa Gözat

tuneup performance for initSlimScrollForRevisionToc when resized

Yuki Takei 7 yıl önce
ebeveyn
işleme
c56f270d2c
1 değiştirilmiş dosya ile 6 ekleme ve 5 silme
  1. 6 5
      resource/js/legacy/crowi.js

+ 6 - 5
resource/js/legacy/crowi.js

@@ -8,6 +8,8 @@
 import React from 'react';
 import React from 'react';
 import ReactDOM from 'react-dom';
 import ReactDOM from 'react-dom';
 
 
+import { debounce } from 'throttle-debounce';
+
 import GrowiRenderer from '../util/GrowiRenderer';
 import GrowiRenderer from '../util/GrowiRenderer';
 import Page from '../components/Page';
 import Page from '../components/Page';
 
 
@@ -189,6 +191,8 @@ Crowi.initSlimScrollForRevisionToc = () => {
     });
     });
   }
   }
 
 
+  const resetScrollbarDebounced = debounce(100, resetScrollbar);
+
   // initialize
   // initialize
   const revisionTocTop = getCurrentRevisionTocTop();
   const revisionTocTop = getCurrentRevisionTocTop();
   resetScrollbar(revisionTocTop);
   resetScrollbar(revisionTocTop);
@@ -197,11 +201,8 @@ Crowi.initSlimScrollForRevisionToc = () => {
    * set event listener
    * set event listener
    */
    */
   // resize
   // resize
-  // TODO turn performance
   window.addEventListener('resize', (event) => {
   window.addEventListener('resize', (event) => {
-    setTimeout(() => {
-      resetScrollbar(getCurrentRevisionTocTop());
-    }, 200);
+    resetScrollbarDebounced(getCurrentRevisionTocTop());
   });
   });
   // affix on
   // affix on
   $('#revision-toc').on('affixed.bs.affix', function() {
   $('#revision-toc').on('affixed.bs.affix', function() {
@@ -209,7 +210,7 @@ Crowi.initSlimScrollForRevisionToc = () => {
   });
   });
   // affix off
   // affix off
   $('#revision-toc').on('affixed-top.bs.affix', function() {
   $('#revision-toc').on('affixed-top.bs.affix', function() {
-    // calculate sum of height (.navbar-header + bg-title) + margin-top of .main
+    // calculate sum of height (.navbar-header + .bg-title) + margin-top of .main
     const sum = 138;
     const sum = 138;
     resetScrollbar(sum);
     resetScrollbar(sum);
   });
   });