ในชีวิตจริงที่เต็มไปด้วยการรอคอยและเวลา เวลาเป็นสิ่งสำคัญที่เราจะต้องจัดการให้เกิดประโยชน์สูงสุด สำหรับโปรแกรมเมอร์เช่นเรา การควบคุมเวลาและการหน่วงเวลากลายเป็นสิ่งที่หลีกเลี่ยงไม่ได้ โดยเฉพาะเมื่อเราต้องจัดการกับเครื่องมือที่มีความคล่องตัวและสามารถตอบสนองอย่างไม่ทันทีเช่น JavaScript
JavaScript Asynchronous Programming
นั้นช่วยให้เราสามารถจัดการกับการทำงานที่ไม่พร้อมเพรียง (Non-blocking) และปรับปรุงประสิทธิภาพของโปรแกรมได้ เมื่อพูดถึงโปรแกรมที่ทำงานไม่พร้อมเพรียง ฟังก์ชันที่เป็นที่รู้จักและนิยมใช้กัน ได้แก่ `setTimeout()` และ `setInterval()`
ฟังก์ชัน `setTimeout()` เป็นฟังก์ชันที่ใช้เรียกกระบวนการหรือฟังก์ชันอีกครั้งในเวลาที่กำหนด ฟังก์ชันนี้ใช้ในการดำเนินการที่จำเป็นต้องรอคอยเวลา เช่น การแสดงผลข้อความหลังจากผ่านไป 5 วินาที หรือการหน่วงเพื่อให้ผู้ใช้ได้มีเวลาอ่านข้อมูล
Syntax:
setTimeout(function, delay, arg1, arg2, ...);
- `function`: ฟังก์ชันที่จะถูกเรียก
- `delay`: เวลาที่จะรอก่อนจะเรียกฟังก์ชันนั้นในหน่วยมิลลิวินาที
- `arg1, arg2, ...`: อาร์กิวเมนต์เพิ่มเติมที่เราต้องการส่งเข้าไปในฟังก์ชันที่ถูกเรียก
ตัวอย่างการใช้งาน:
function greet(name) {
console.log("สวัสดี, " + name + "!");
}
setTimeout(greet, 3000, "Jin");
ตัวอย่างข้างต้นจะเป็นการแสดงผลข้อความ "สวัสดี, Jin!" หลังจากครบ 3 วินาที
กรณีใช้งาน:
หน้าที่หลักของ `setTimeout()` คือการหน่วงเวลา เช่น ใช้ในการจำลองการโหลดข้อมูลจากเซิร์ฟเวอร์ที่ต้องใช้เวลา หรือเลื่อนขั้นตอนการแสดงกราฟิกในการเล่นเกม
ในขณะที่ `setTimeout()` ใช้สำหรับการทำงานเพียงครั้งเดียว `setInterval()` จะเข้ามามีบทบาทเมื่อเราต้องการให้ฟังก์ชันทำงานเป็นช่วงเวลาอย่างต่อเนื่อง เช่น การแสดงเวลาปัจจุบันในทุกวินาที
Syntax:
setInterval(function, interval, arg1, arg2, ...);
- `function`: ฟังก์ชันที่จะถูกเรียก
- `interval`: ช่วงเวลาที่จะเรียกฟังก์ชันในหน่วยมิลลิวินาที
- `arg1, arg2, ...`: อาร์กิวเมนต์เพิ่มเติมที่ต้องการส่งเข้าไปในฟังก์ชัน
ตัวอย่างการใช้งาน:
let count = 0;
const intervalId = setInterval(() => {
console.log("This is count number: " + (++count));
if (count === 5) {
clearInterval(intervalId);
}
}, 1000);
ในตัวอย่างด้านบน `setInterval()` จะเรียกฟังก์ชันทุกๆ วินาที และแสดงข้อความนับ count ซึ่งจะหยุดเมื่อ count ถึง 5 ด้วยการใช้ `clearInterval()`
กรณีใช้งาน:
เราสามารถใช้ `setInterval()` ในการสร้างฟังก์ชันที่ทำงานซ้ำเรื่อยๆ เช่น การอัพเดทข้อมูลเวลาจริงบนเว็บไซต์ หรือการแจ้งเตือนช่วงเวลาที่กำหนด
การใช้ฟังก์ชัน `setTimeout()` และ `setInterval()` นั้นยังมีข้อสังเกตที่สำคัญดังนี้:
- การใช้ `setInterval()` โดยไม่มีการควบคุมด้วย `clearInterval()` อาจทำให้เกิดการเรียกซ้ำไม่หยุด และนำไปสู่การทำงานที่ไม่จำเป็นต้องทำซ้ำ
- ควรตรวจสอบให้มั่นใจว่าเวลาที่ใช้มีความเหมาะสม ไม่สั้นหรือยาวเกินไปซึ่งอาจจะทำให้โปรแกรมของคุณทำงานผิดพลาดหรือล่าช้า
ในแง่การพัฒนาโปรแกรม การเข้าใจและประยุกต์ใช้ฟังก์ชันเหล่านี้ใน JavaScript จะเป็นเครื่องมือที่ช่วยให้โปรแกรมของคุณทำงานได้ดียิ่งขึ้น ในทุกครั้งที่คุณต้องการให้ฟังก์ชันบางอย่างทำงานทันทีหรือแบบกำหนดเวลา
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโปรแกรมแบบ Asynchronous หรือประยุกต์ใช้กรณีการใช้จริงภายในโปรแกรมต่างๆ อย่างถูกต้องและมีประสิทธิภาพ การเรียนรู้จากผู้เชี่ยวชาญที่ EPT จะเป็นการเริ่มต้นที่ดีอย่างแน่นอนเพื่อพัฒนาความสามารถในการเขียนโปรแกรมของคุณให้ก้าวไปอีกขั้น
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: java c# vb.net python c c++ machine_learning web database oop cloud aws ios android
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com