setTimeout Function Invocation Isu Kelewatan
Apabila cuba melaksanakan mekanisme pengundian 5 saat untuk kemas kini nilai HTML, pengguna mungkin menghadapi tingkah laku yang tidak dijangka di mana fungsi setTimeout() dipanggil serta-merta dan bukannya selepas kelewatan yang dimaksudkan. Ini boleh menghalang permintaan pelayan berperingkat yang dikehendaki.
Punca:
Isu ini berpunca daripada cara yang salah fungsi setTimeout() sedang digunakan.
Asal Kod:
setTimeout(GetUsersNumber(), 50000);
Penjelasan:
Dalam JavaScript, fungsi boleh ditakrifkan sebagai objek tanpa kurungan. Walau bagaimanapun, untuk memanggil fungsi, ia mesti diikuti dengan kurungan. Dalam kod asal, fungsi GetUsersNumber() sedang dipanggil serta-merta di dalam setTimeout(), dan bukannya dihantar sebagai rujukan fungsi.
Penyelesaian:
Kepada selesaikan isu ini, cuma alih keluar kurungan selepas nama fungsi dalam argumen setTimeout():
setTimeout(GetUsersNumber, 5000); // 5 seconds instead of 50
Ini memastikan bahawa setTimeout() menangkap rujukan kepada objek fungsi GetUsersNumber itu sendiri, membenarkan ia menggunakan fungsi apabila kelewatan selesai.
Atas ialah kandungan terperinci Mengapakah Fungsi `setTimeout` Saya Melaksanakan Serta-merta Daripada Selepas Kelewatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!