脚本异步编程:优化 JavaScript 代码性能235


ในบทความนี้ เราจะมาทำความเข้าใจแนวคิดของการเขียนโปรแกรมแบบอะซิงโครนัสใน JavaScript และวิธีใช้เพื่อปรับปรุงประสิทธิภาพของโค้ด

การเขียนโปรแกรมแบบอะซิงโครนัสคืออะไร?

การเขียนโปรแกรมแบบอะซิงโครนัส (Asynchronous Programming) คือเทคนิคที่ช่วยให้โค้ด JavaScript สามารถทำงานได้โดยไม่ต้องรอให้ภารกิจอื่นเสร็จสิ้น โดยจะใช้คอลแบ็กฟังก์ชัน (callback functions) หรือการสัญญา (promises) เพื่อจัดการกับการประมวลผลที่เกิดขึ้นในอนาคต

ประโยชน์ของการเขียนโปรแกรมแบบอะซิงโครนัส


การเขียนโปรแกรมแบบอะซิงโครนัสมีประโยชน์หลายประการ ได้แก่:
ประสิทธิภาพที่ดียขึ้น: โค้ดอะซิงโครนัสจะไม่บล็อกการดำเนินการของกระบวนการหลัก (main thread) ทำให้แอปพลิเคชันตอบสนองได้ดีขึ้น
การใช้ทรัพยากรที่ดีขึ้น: โค้ดอะซิงโครนัสจำเป็นต้องใช้ทรัพยากรน้อยลงเนื่องจากไม่ต้องรอให้ภารกิจเสร็จสิ้น
การเขียนโค้ดที่อ่านง่ายยิ่งขึ้น: โค้ดอะซิงโครนัสสามารถแบ่งงานออกเป็นโมดูลที่เล็กกว่าและจัดการได้ง่ายขึ้น

วิธีการเขียนโค้ด JavaScript แบบอะซิงโครนัส


มีสองวิธีหลักในการเขียนโค้ด JavaScript แบบอะซิงโครนัส:
การใช้คอลแบ็กฟังก์ชัน: คอลแบ็กฟังก์ชันคือฟังก์ชันที่ถูกส่งผ่านไปยังฟังก์ชันอื่นและจะถูกเรียกใช้เมื่อภารกิจเสร็จสิ้น
การใช้การสัญญา: การสัญญาคือวัตถุที่แสดงภารกิจที่อาจเสร็จสิ้นในอนาคต โปรแกรมเมอร์สามารถแนบแฮนด์เลอร์ซึ่งจะถูกเรียกเมื่อการสัญญาได้รับการแก้ไขหรือปฏิเสธ

ตัวอย่างการเขียนโค้ดแบบอะซิงโครนัส


มาดูตัวอย่างการเขียนโค้ดแบบอะซิงโครนัสโดยใช้คอลแบ็กฟังก์ชัน:
// ใช้ setTimeout เพื่อจำลองการดำเนินการที่ใช้เวลานาน
setTimeout(() => {
('งานเสร็จสิ้น'); // จะถูกพิมพ์หลังจาก 1 วินาที
}, 1000);
('กำลังดำเนินการ...'); // จะถูกพิมพ์ก่อน 'งานเสร็จสิ้น'

ในตัวอย่างนี้ ฟังก์ชัน setTimeout() จะใช้เวลานาน 1 วินาทีในการเรียกใช้คอลแบ็กฟังก์ชัน ในระหว่างนี้ คำสั่ง () ที่อยู่ถัดไปจะถูกดำเนินการ ทำให้โค้ดตอบสนองได้แม้ในระหว่างการดำเนินการที่ใช้เวลานาน

การใช้การสัญญาใน JavaScript


การสัญญานำเสนอวิธีการที่ทันสมัยและมีโครงสร้างมากขึ้นในการจัดการกับการเขียนโปรแกรมแบบอะซิงโครนัสใน JavaScript

มาดูตัวอย่างการเขียนโค้ดแบบอะซิงโครนัสโดยใช้การสัญญา:
const promise = new Promise((resolve, reject) => {
// ใช้ setTimeout เพื่อจำลองการดำเนินการที่ใช้เวลานาน
setTimeout(() => {
resolve('งานเสร็จสิ้น');
}, 1000);
});
((result) => {
(result); // จะถูกพิมพ์หลังจาก 1 วินาที
}).catch((error) => {
(error);
});
('กำลังดำเนินการ...'); // จะถูกพิมพ์ก่อน 'งานเสร็จสิ้น'

ในตัวอย่างนี้ วัตถุ Promise จะถูกสร้างขึ้นและมีการตั้งค่าคอลแบ็กฟังก์ชัน resolve และ reject เมื่อการดำเนินการเสร็จสิ้น ฟังก์ชัน resolve จะถูกเรียกและส่งค่าผลลัพธ์กลับมาซึ่งจะถูกส่งผ่านไปยังเมธอด then() หากการดำเนินการล้มเหลว ฟังก์ชัน reject จะถูกเรียกและส่งข้อผิดพลาดกลับมาซึ่งจะถูกส่งผ่านไปยังเมธอด catch()

ข้อสรุป


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

2024-12-03


上一篇:UFT 编程脚本:自动化测试的揭秘

下一篇:脚本操作编程:自动化任务的利器