老師,做類似這樣交互效果,需要做防抖處理嗎?
請問老師,touchmove事件持續觸發,回調函數就會一直執行,里面的運算邏輯與dom操作也一直在執行,會不會消耗太多的性能,需不需要做防抖處理?做了防抖處理,可能會提高一些性能,但是對于一些臨界點的判斷又不夠敏感了。老師有沒有好的解決方案?感謝老師
請問老師,touchmove事件持續觸發,回調函數就會一直執行,里面的運算邏輯與dom操作也一直在執行,會不會消耗太多的性能,需不需要做防抖處理?做了防抖處理,可能會提高一些性能,但是對于一些臨界點的判斷又不夠敏感了。老師有沒有好的解決方案?感謝老師
2023-05-30
舉報
2023-06-10
視情況而定,針對本課程實現的兩種交互效果是不需要添加節流和防抖處理的(亦不適合),具體原因如下:
????1、于交互效果而言,判斷是否需要節流和防抖處理需要看該交互效果是立即觸發型還是需要一定操作才可觸發的類型,如果是立即觸發型的交互效果可以考慮添加節流處理防止重復觸發。
????2、本課程針對交互效果的加載過程中這一狀態都做了處理(加載鎖、狀態判斷),這樣做的好處是可以直到加載完成再允許下一次觸發,而不用像節流一樣等某個特定時間之后才再次觸發(如果這樣的話或導致很多不確定性,比如還沒加載完又可以觸發了,或加載完了還不能觸發,故節流不適用與這兩種交互效果),所以這兩個交互效果的方法是不能重復觸發的,也不需要做節流和防抖處理。
往往有以下場景需要節流/防抖處理:
節流:點擊按鈕后發起請求(防止發起多次請求)、表單提交、點擊后立即開始動畫(防止多次觸發播放)等...
防抖:搜索建議(根據輸入內容實時展示搜索建議,防止建議內容頻繁改變)等...
類似的場景還有很多,這里不一一列舉了,老師也正在準備一門針對特定場景的解決方案的課程,如果有興趣的話可以期待一下,還有什么不懂的問題可以繼續聯系我。