🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

วิธีใช้ JavaScript clearTimeout [สำหรับผู้เริ่มต้น]

ฟังก์ชันที่ใช้หยุดการทำงานแบบครั้งเดียวก่อนที่จะเริ่มทำงาน

⏹️ clearTimeout คืออะไร?

ใช้ยกเลิก (ปิดใช้งาน) setTimeout() ด้วยฟังก์ชันนี้

🧠 ใช้เมื่อไหร่ดี?

สถานการณ์วิธีใช้งานทำไมถึงยกเลิก?
🔘 การแจ้งเตือนชั่วคราวตั้งเวลาให้ข้อความหายหลัง 3 วินาที → ถ้าผู้ใช้ปิดก่อนให้ยกเลิกป้องกันการประมวลผลที่ไม่จำเป็น
⌨️ ค้นหาล่าช้าในช่องกรอกเริ่มจับเวลาเมื่อพิมพ์ → กดยกเลิกเมื่อมีการพิมพ์เพิ่มลดการเรียก API ซ้ำซ้อน
🧯 ข้อความเตือนเช่น "ยกเลิกภายใน 3 วินาทีเพื่อย้อนกลับ..."ป้องกันการกดผิด
🖱️ ข้อความเมื่อเอาเมาส์ชี้ตั้งเวลาแสดง → ยกเลิกหากเมาส์ออกเพิ่มประสบการณ์ผู้ใช้
🎮 เกมหรือเอฟเฟกต์ตั้งค่าแสดงผล → ยกเลิกหากสถานการณ์เปลี่ยนหยุดการทำงานที่ไม่จำเป็น


👇 ข้อความจะแสดงที่นี่ 👇
(ยังไม่แสดง)


🚫 ตัวอย่าง: การยกเลิกการทำงานที่ตั้งเวลาไว้

ตัวอย่างด้านล่างนี้ใช้ setTimeout() เพื่อกำหนดให้คำสั่งทำงานในอีก 3 วินาที แต่ยกเลิกทันทีด้วย clearTimeout()

เนื่องจากถูกยกเลิกไปแล้ว จึงจะไม่มีอะไรเกิดขึ้น โดยมักใช้รูปแบบนี้กับปุ่มยกเลิก หรือรีเซ็ตตัวจับเวลา (Timer)


const timer = setTimeout(() => {
  console.log("จะทำงานหลังจาก 3 วินาที!");
}, 3000);

// ยกเลิกการทำงานที่ตั้งไว้
clearTimeout(timer);
  

🧪 ทดลอง: กดปุ่มเพื่อหยุดการทำงาน

คลิก "เริ่ม" เพื่อแสดงข้อความหลังจาก 3 วินาที คลิก "ยกเลิก" เพื่อหยุดการทำงาน


<!-- พื้นที่แสดงผล -->
<div id="message">จะแสดงข้อความตรงนี้</div>

<!-- ปุ่ม -->
<button onclick="startTimer()">เริ่ม</button>
<button onclick="cancelTimer()">ยกเลิก</button>

<!-- สคริปต์ -->
<script>
let timerId = null;

function startTimer() {
  const msg = document.getElementById("message");
  msg.textContent = "จะแสดงข้อความในอีก 3 วินาที...";
  timerId = setTimeout(() => {
    msg.textContent = "✅ แสดงข้อความเรียบร้อยแล้ว!";
  }, 3000);
}

function cancelTimer() {
  clearTimeout(timerId);
  const msg = document.getElementById("message");
  msg.textContent = "❌ การทำงานถูกยกเลิกแล้ว";
}
</script>

🧩 การใช้งานและเคล็ดลับการออกแบบ clearTimeout

clearTimeout() ไม่ได้มีไว้แค่หยุดตัวจับเวลาเท่านั้น แต่ยังเป็นเครื่องมือสำคัญในการออกแบบปฏิสัมพันธ์ที่ตอบสนองต่อผู้ใช้ได้อย่างยืดหยุ่น ตัวอย่างเช่น หากผู้ใช้ยกเลิกการกระทำบางอย่างกลางคัน การยกเลิกการทำงานที่ตั้งไว้ล่วงหน้าจะช่วยหลีกเลี่ยงผลลัพธ์ที่ไม่จำเป็นหรือผิดพลาด

ช่วงเวลาที่เลือกยกเลิก setTimeout() มีผลต่อประสบการณ์ผู้ใช้อย่างมาก เช่น หากตั้งเวลาให้แสดงข้อความหลังจาก 3 วินาที แต่ผู้ใช้ออกจากหน้านั้นทันที การใช้ clearTimeout() จะช่วยป้องกันการแสดงผลที่ไม่เหมาะสมหรือสิ้นเปลืองทรัพยากร

นอกจากนี้ยังเหมาะกับการใช้งานแบบหน่วงเวลา เช่น ระบบค้นหาจากการพิมพ์ หรือ tooltip แสดงคำแนะนำ หากมีการกระทำใหม่เกิดขึ้นทันที การเรียก clearTimeout() จะช่วยให้ระบบตอบสนองได้ตรงกับเจตนาของผู้ใช้มากขึ้น

🔧 แนวทางที่ดีในการจัดการตัวจับเวลา

เมื่อมีการใช้หลาย setTimeout() ควรเก็บค่าที่ได้ไว้ในตัวแปร แล้วใช้ clearTimeout() เพื่อยกเลิกเมื่อจำเป็น วิธีนี้จะช่วยลดความสับสนและป้องกันการทำงานที่ไม่ตั้งใจ

การใช้ clearTimeout() อย่างเหมาะสมเป็นปัจจัยสำคัญที่มองไม่เห็นแต่ส่งผลโดยตรงต่อ UX การยกเลิกอย่างมีระบบจะช่วยให้การทำงานของเว็บแอปพลิเคชันเป็นธรรมชาติและเป็นมิตรกับผู้ใช้มากขึ้น