JavaScript의 간단한 조절
JavaScript는 lodash 및 밑줄을 포함하여 조절 기능을 위한 다양한 도구를 제공합니다. 그러나 이러한 라이브러리가 과도할 수 있는 경우에는 사용자 정의 조절 구현이 바람직합니다.
기존 조절 기능 및 과제
제공되는 조절 기능은 작동하지만 문제를 제시합니다. 스로틀 기간이 만료된 후 마지막으로 기능을 실행합니다. 이로 인해 기능이 여러 번 실행되어서는 안 되는 시나리오에서 원치 않는 동작이 발생할 수 있습니다.
향상된 스로틀 기능
이 문제를 해결하려면 다음과 같은 향상된 스로틀 기능을 고려하세요. 스로틀 기간 이후 최종 실행을 제거합니다.
function throttle(func, wait, options) { var context, args, result; var timeout = null; var previous = 0; if (!options) options = {}; var later = function() { previous = options.leading === false ? 0 : Date.now(); timeout = null; result = func.apply(context, args); if (!timeout) context = args = null; }; return function() { var now = Date.now(); if (!previous && options.leading === false) previous = now; var remaining = wait - (now - previous); context = this; args = arguments; if (remaining <= 0 || remaining > wait) { if (timeout) { clearTimeout(timeout); timeout = null; } previous = now; result = func.apply(context, args); if (!timeout) context = args = null; } else if (!timeout && options.trailing !== false) { timeout = setTimeout(later, remaining); } return result; }; };
이 업데이트된 기능은 선행 및 후행 에지 트리거링을 위한 선택적 매개변수와 함께 구성 가능한 조절 메커니즘을 제공합니다.
간소화된 스로틀 기능
사용자 정의 기능이 필요하지 않은 경우 더 간단한 스로틀 기능은 다음과 같습니다.
function throttle (callback, limit) { var waiting = false; return function () { if (!waiting) { callback.apply(this, arguments); waiting = true; setTimeout(function () { waiting = false; }, limit); } } }
이 구성 불가능한 기능은 복잡한 옵션 없이 대상 기능을 지정된 시간 간격으로 스로틀합니다. .
위 내용은 **간단한 JavaScript 조절 기능이 조절 기간 후 최종 실행을 제거하는 이유는 무엇입니까?**의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!