JavaScript
Public
Debounced Search Input Handler
Implements a debounced search input handler that delays API calls until the user stops typing for 500ms, reducing unnecessary requests.
JavaScript
function debounce(func, delay = 300) {
let timeout;
return function (...args) {
clearTimeout(timeout);
timeout = setTimeout(() => {
func.apply(this, args);
}, delay);
};
}
const searchInput = document.getElementById('search');
function handleSearch(event) {
const query = event.target.value;
if (query.length < 2) return;
console.log("Searching for:", query);
fetch(`/api/search?q=${encodeURIComponent(query)}`)
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
}
// lkdjáfdádjf -----------------
const debouncedSearch = debounce(handleSearch, 500);
searchInput.addEventListener('input', debouncedSearch);