Pernahkah anda berada di tapak web, menaip ke dalam bar carian dan perasan bagaimana cadangan itu muncul dalam masa nyata tanpa menyebabkan sebarang ketinggalan? Atau mungkin anda telah mengisi borang dan melihat mesej "Nama pengguna sudah diambil" muncul semasa anda menaip. Di sebalik pengalaman lancar ini terdapat wira pembangunan web moden yang kuat dan sering tidak didendang: menyahlantun.
Menyahlantun ialah teknik pengaturcaraan yang memastikan fungsi dilaksanakan hanya selepas tempoh tidak aktif yang ditetapkan. Bayangkan anda sedang menaip ke dalam bar carian. Tanpa nyahlantun, setiap ketukan kekunci akan mencetuskan panggilan fungsi, yang berpotensi mengatasi sistem dengan permintaan yang berlebihan. Nyahlantun menyelesaikan masalah ini dengan menunggu jeda dalam menaip anda sebelum melaksanakan fungsi, memastikan hanya satu permintaan dihantar.
Pada asasnya ia mengawal kekerapan pelaksanaan fungsi. Tetapi untuk pemahaman yang lebih mudah mari kita ambil contoh loceng pintu. Katakan ada bir pintu yang berdering selepas 3 saat tidak aktif. Selepas deringan awal jika pengguna cuba membunyikan loceng seberapa banyak kali ia tidak akan berdering melainkan dia memutuskan untuk melepasi 3 saat lagi.
Dalam JavaScript, nyahlantun biasanya digunakan dengan pendengar acara seperti input, tatal atau ubah saiz. Berikut ialah pelaksanaan asas:
function debounce(callback, delay) { let timeoutId; return (...args) => { clearTimeout(timeoutId); timeoutId = setTimeout(() => { callback(...args); }, delay); }; }
Biarkan memahami elemen berbeza kod ini:
function debounce(callback, delay) { let timeoutId; return (...args) => { clearTimeout(timeoutId); timeoutId = setTimeout(() => { callback(...args); }, delay); }; }
const handleSearch = debounce((query) => { fetch(`https://api.example.com/search?q=${query}`) .then((response) => response.json()) .then((data) => console.log(data)); }, 500); document.getElementById("search").addEventListener("input", (e) => { handleSearch(e.target.value); });
.
.
.
.
.
Terbuka kepada Cadangan
Mempunyai pandangan atau petua tambahan untuk menambah baik blog ini? Jangan ragu untuk berkongsi maklum balas anda! Input anda amat berharga untuk mempertingkatkan kandungan masa hadapan.
Atas ialah kandungan terperinci Menyahlantun dalam JS: Membina apl web yang lebih baik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!