Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Melambatkan Pengendali Acara Keyup untuk Mencegah Tindakan Berlebihan Semasa Menaip Pengguna?

Bagaimanakah Saya Boleh Melambatkan Pengendali Acara Keyup untuk Mencegah Tindakan Berlebihan Semasa Menaip Pengguna?

Mary-Kate Olsen
Lepaskan: 2024-12-12 22:36:18
asal
479 orang telah melayarinya

How Can I Delay Keyup Event Handlers to Prevent Excessive Actions During User Typing?

Melengahkan Pengendali Acara Kekunci untuk Pemberhentian Menaip Pengguna

Dalam antara muka pengguna interaktif, selalunya wajar untuk melaksanakan tindakan hanya selepas pengguna selesai memasukkan data. Pertimbangkan medan carian yang melaksanakan pertanyaan AJAX pada setiap kekunci. Secara lalai, ini akan menghasilkan banyak permintaan carian untuk rentetan input yang terpendek sekalipun.

Untuk mengelakkan pertanyaan yang berlebihan ini dan meningkatkan pengalaman pengguna, kami boleh melaksanakan mekanisme kelewatan yang hanya melakukan tindakan selepas tempoh tertentu tidak aktif. Walaupun fungsi kekunci asli tidak mempunyai fungsi kelewatan terbina dalam, kami boleh mencapai matlamat kami menggunakan fungsi mudah yang dipanggil kelewatan.

Fungsi kelewatan mengambil dua hujah:

  • panggilan balik : Fungsi untuk dilaksanakan selepas tempoh kelewatan.
  • ms: The tempoh kelewatan dalam milisaat (pilihan; lalai kepada 0).

Fungsi kelewatan pada asasnya mencipta pendikit, menghalang panggilan balik daripada dipanggil terlalu kerap. Berikut ialah contoh pelaksanaan:

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);
  };
}
Salin selepas log masuk

Untuk menggunakan kelewatan ini pada medan carian anda, anda boleh menggunakannya seperti berikut:

$('#input').keyup(delay(function (e) {
  // Perform your search logic here
}, 500));
Salin selepas log masuk

Di sini, logik carian hanya akan dilaksanakan 500 milisaat selepas acara keyup terakhir, memberikan pengalaman yang lebih mesra pengguna.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melambatkan Pengendali Acara Keyup untuk Mencegah Tindakan Berlebihan Semasa Menaip Pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan