Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

อธิบายฟังก์ชั่นดีบักจาวาสคริปต์?


ฟังก์ชันดีบักซ์จะจำกัดอัตราที่ฟังก์ชันสามารถเริ่มทำงานได้ ตัวอย่างเช่น แถบข้อความเติมข้อความอัตโนมัติที่สอบถามเซิร์ฟเวอร์ หากคุณสอบถามเซิร์ฟเวอร์ในการกดแป้นพิมพ์แต่ละครั้ง เซิร์ฟเวอร์จะมีผลกระทบต่อเครือข่ายและหน่วยความจำโดยไม่จำเป็น สิ่งที่คุณทำได้คือจำกัดจำนวนการโทรเหล่านี้ในช่วงเวลาที่กำหนด

คุณสามารถเขียนฟังก์ชัน debounce ของคุณเองที่รับฟังก์ชันจริงของคุณเป็นอาร์กิวเมนต์ และดำเนินการตามอัตราที่จำกัด (ควบคุมปริมาณ)

ตัวอย่าง

const debounce = (cb, time) => {
   let timeout;
   return function() {
      const wrapperFunc = () => cb.apply(this, arguments);
      clearTimeout(timeout);
      timeout = setTimeout(wrapperFunc, time);
   }
}

ฟังก์ชันนี้รับการเรียกกลับ 2 อาร์กิวเมนต์และช่วงเวลาที่ควรเรียกใช้ สมมติว่าการเรียก API ครั้งแรกไปที่ 1 มิลลิวินาที และคุณได้ตั้งเวลาไว้ที่ 250 มิลลิวินาที จนถึง 251 มิลลิวินาที การเรียกใหม่จะไม่เกิดขึ้นกับ API ไม่ว่าจะเรียกใช้ฟังก์ชันนี้กี่ครั้งก็ตาม คุณสามารถแทนที่การเรียกใช้ฟังก์ชันของคุณเองได้โดยใช้การโทรนี้