comprensión de JavaScript Desblowing
En JavaScript, la función "Desbloqueo" juega un papel crucial en la optimización del manejo de eventos y la prevención de las llamadas excesivas de funciones. Funciona retrasando la ejecución de una función hasta que haya transcurrido una cantidad de tiempo específica desde su última invocación.
El fragmento de código proporcionado describe la implementación de dicha función:
function debounce(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};
Para comprender cómo funciona, analicemos cada parte:
- 'inmediato' Flag: Esta bandera opcional determina si la función debe ejecutarse inmediatamente en la primera llamada antes de que el período de retraso sean. Si inmediato se establece en verdadero, la función se ejecutará en la llamada inicial y luego aplicará el retraso para las llamadas posteriores.
- 'Timeout' variable: internamente para almacenar la referencia a un tiempo de espera pendiente.
- 'más tarde' función: para ejecutarse después del período de retraso. Borra el tiempo de espera y, si 'inmediato' es falso, ejecuta la función debilitada.
- 'callnow' variable: verifica si el indicador 'inmediato' está configurado y no se está ejecutando el tiempo de espera. Si se evalúa en verdadero, significa que la función debe ejecutarse de inmediato.
Cuando la función se invoca, primero asigna el contexto correcto y los argumentos para la ejecución retrasada.
- si 'callnow' es verdadero (modo inmediato), la función se ejecuta inmediatamente inmediatamente, anular cualquier pendiente. False o 'Callnow' es falso, se establece un tiempo de espera para ejecutar la función después del período de retraso especificado. Si ocurre otra llamada antes de que expire el tiempo de espera, restablece el tiempo de espera.
- después de que haya transcurrido el período de retraso, se borra la variable 'Tiempo de espera', y la función se ejecuta si 'inmediato' es falso.
-
Esta técnica de desaceleración se usa comúnmente en el evento de manejo de eventos, tal como scrolando, rescatete, rescaten, resulte, resulte, rescate, o ingrese los eventos de la respuesta, o los eventos de desacramamiento se usan comúnmente en el evento, al mismo tiempo, a medida que se screaming, rescaten, resulte, resulte, resulte, respatean, aumentan las veces, mejoran la respuesta de la respuesta de la respuesta, tal como los scroladores, al finalizar, el rescatado, el rescate, el rescate, la renta de la respuesta, la rentabilidad, la respuesta, la respuesta, el script. llamadas de función innecesaria o repetitiva.