प्रौद्योगिकी साझेदारी

अग्र-अन्त-पृष्ठ-सञ्चालन-विरोधी-शेक-कार्य-एनकैप्सुलेशन-अनुप्रयोगः च

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. पृष्ठभूमिस्य उपयोगं कुर्वन्तु

फंक्शन् एण्टी-शेक वस्तुतः एकस्य अग्रभागस्य छात्रस्य कृते आवश्यकं कौशलं भवति तथा च तत् प्राप्तुं पृष्ठ लोडिंग् अथवा बटन लोडिंग् उधारं गृहीतवान्। अधुना अहं WeChat एप्लेट् विकसितवान् अस्मि । अतः अनेकवारं क्रमशः क्लिक् कृत्वा पृष्ठं बहुवारं कटितं भविष्यति, अतः अस्माभिः एतत् प्राप्तुं anti-shake function इत्यस्य उपयोगः कर्तव्यः ।

2. संहिता कार्यान्वयनम्

अग्रे विना, सीधा कोडं प्रति गच्छामः ।

/* 防抖函数封装 */
let timer
export const debounce = (fn, delay = 500) => {
  return  (...args) => { // 传入形参!!!
      let that = this
      timer && clearTimeout(timer)
      timer = setTimeout(function () {
        console.log("防抖函数执行", args)
        fn.apply(that, args) // 用apply指向调用debounce的对象,相当于this.fn(args);
      }, delay)
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

अन्यैः छात्रैः लिखिताः बहवः एन्कैप्सुलेटेड् फंक्शन्स् अपि दृष्टाः ते औपचारिकं पैरामीटर् न स्वीकुर्वन्ति, यस्य परिणामेण बाह्यमापदण्डाः भवन्ति ये एण्टी-शेक फंक्शन् मध्ये प्राप्तुं न शक्यन्ते, अथवा टाइमर् परिभाषा फंक्शन् मध्ये क्षिप्ता भवति, येन पुनः आरम्भः भवति प्रत्येकं समये अहं समयनिर्धारकं परिभाषयामि, परन्तु समयनिर्धारकस्य स्वच्छीकरणस्य उद्देश्यं न साधयति ।

3. व्यावहारिकः अनुप्रयोगः

3.1 पृष्ठकूदं एण्टी-शेक कार्यान्वितं कुर्वन्तु


export function goPage(url) {
    debounce((url) => {
    	url && wx.navigateTo({ url })
    })(url)
}

// 页面调用
goPage('.pages/home/index')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

३.२ पृष्ठपरस्परक्रियाविरोधी-कम्पनस्य कार्यान्वयनम्

gotoShop(value) {
  debounce((value) => {
         // 接收外部传来的value参数,进行后续逻辑处理
     })(value) // 接收外围函数的参数,丢到防抖函数里,有兴趣的同学也可以了解一下闭包
 },
  • 1
  • 2
  • 3
  • 4
  • 5

सम्प्रति उपर्युक्तद्वयं सर्वाधिकं प्रचलितं अनुप्रयोगं यदि भवद्भ्यः रोचते तर्हि कृपया अङ्गुष्ठं ददातु।