Home >Web Front-end >JS Tutorial >How Can I Delay a Keyup Handler to Prevent Excessive AJAX Requests During User Typing?
Delays the .keyup() Handler for User Typing Cessation
In a search field, immediate AJAX searches for each key press can result in excessive traffic. To mitigate this, implementing a delay is desired, allowing searches only when users cease typing.
To achieve this, the provided code snippet utilizes the delay() function. This function executes a callback after a specified time or in rapidly firing events like resize. Here's how it can be used:
function delay(callback, ms) { var timer = 0; return function() { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function () { callback.apply(context, args); }, ms || 0); }; } // Example usage: $('#input').keyup(delay(function (e) { console.log('Time elapsed!', this.value); }, 500));
In this example, the delay() function is employed to delay the execution of a console log when users stop typing in the #input field for 500 milliseconds. This ensures that the AJAX search is performed only after users have completed their input.
The above is the detailed content of How Can I Delay a Keyup Handler to Prevent Excessive AJAX Requests During User Typing?. For more information, please follow other related articles on the PHP Chinese website!