คุณเคยสงสัยหรือไม่ว่าบางเว็บไซต์ดูเหมือนจะทำงานต่อไปแม้ในขณะที่คุณออฟไลน์ ความลับนั้นง่ายมาก: เว็บไซต์เหล่านี้มีพนักงานบริการ
พนักงานบริการเป็นเทคโนโลยีหลักที่อยู่เบื้องหลังคุณสมบัติที่คล้ายกับแอปดั้งเดิมของเว็บแอปพลิเคชันสมัยใหม่
พนักงานบริการคืออะไร?
พนักงานบริการเป็นประเภทเฉพาะของ คนงานเว็บ JavaScript . พนักงานบริการคือไฟล์ JavaScript ที่ทำงานเหมือนกับพร็อกซีเซิร์ฟเวอร์ ตรวจจับคำขอเครือข่ายขาออกจากแอปพลิเคชันของคุณ ช่วยให้คุณสร้างการตอบกลับที่กำหนดเองได้ ตัวอย่างเช่น คุณอาจให้บริการไฟล์แคชแก่ผู้ใช้เมื่อออฟไลน์
แรมแท่งต่างกันได้ไหม
พนักงานบริการยังให้คุณเพิ่มคุณสมบัติต่างๆ เช่น การซิงค์พื้นหลังกับเว็บแอปพลิเคชันของคุณ
แอพ Google Play บน amazon fire
ทำไมต้องเป็นพนักงานบริการ?
นักพัฒนาเว็บพยายามขยายขีดความสามารถของแอพมาเป็นเวลานาน ก่อนที่พนักงานบริการจะเข้ามา คุณสามารถใช้โซลูชันต่างๆ เพื่อทำให้สิ่งนี้เป็นไปได้ สิ่งที่น่าสังเกตเป็นพิเศษคือ AppCache ซึ่งทำให้ทรัพยากรแคชสะดวก น่าเสียดายที่มันมีปัญหาที่ทำให้เป็นวิธีแก้ปัญหาที่ทำไม่ได้สำหรับแอพส่วนใหญ่
AppCache ดูเหมือนจะเป็นความคิดที่ดีเพราะช่วยให้คุณสามารถระบุเนื้อหาเพื่อแคชได้อย่างง่ายดาย อย่างไรก็ตาม มันทำให้เกิดสมมติฐานมากมายเกี่ยวกับสิ่งที่คุณพยายามจะทำ และจากนั้นก็พังอย่างน่ากลัวเมื่อแอปของคุณไม่ปฏิบัติตามสมมติฐานเหล่านั้นอย่างแน่นอน อ่านของ Jake Archibald (น่าเสียดายที่มีชื่อ แต่เขียนได้ดี) Application Cache เป็น Douchebag สำหรับรายละเอียดเพิ่มเติม (แหล่งที่มา: MDN )
พนักงานบริการคือความพยายามในปัจจุบันที่จะลดข้อจำกัดของเว็บแอป โดยไม่มีข้อเสียของเทคโนโลยีอย่าง AppCache
เว็บไซต์หาคู่ออนไลน์ฟรีสำหรับวัยรุ่น
กรณีการใช้งานสำหรับพนักงานบริการ
แล้วพนักงานบริการให้คุณทำอะไรกันแน่? เจ้าหน้าที่บริการอนุญาตให้คุณเพิ่มคุณลักษณะที่เป็นคุณลักษณะของแอปที่มาพร้อมเครื่องในเว็บแอปพลิเคชันของคุณ นอกจากนี้ยังสามารถมอบประสบการณ์การใช้งานปกติในอุปกรณ์ที่ไม่รองรับผู้ปฏิบัติงานบริการ แอพแบบนี้บางครั้งเรียกว่า เว็บแอปโปรเกรสซีฟ (PWA) .
ต่อไปนี้คือคุณลักษณะบางอย่างที่พนักงานบริการทำขึ้นได้:
- อนุญาตให้ผู้ใช้ใช้แอปต่อไป (หรืออย่างน้อยบางส่วน) เมื่อไม่ได้เชื่อมต่อกับอินเทอร์เน็ตอีกต่อไป พนักงานบริการบรรลุเป้าหมายนี้โดยให้บริการเนื้อหาที่แคชไว้เพื่อตอบสนองต่อคำขอ
- ในเบราว์เซอร์ที่ใช้ Chromium พนักงานบริการเป็นหนึ่งในข้อกำหนดสำหรับเว็บแอปที่จะติดตั้งได้
- พนักงานบริการจำเป็นสำหรับเว็บแอปพลิเคชันของคุณจึงจะสามารถใช้การแจ้งเตือนแบบพุชได้
วงจรชีวิตของพนักงานบริการ
เจ้าหน้าที่บริการอาจควบคุมคำขอสำหรับทั้งไซต์หรือเพียงบางส่วนของหน้าของไซต์ หน้าเว็บหนึ่งๆ สามารถมีพนักงานบริการที่ใช้งานอยู่ได้เพียงคนเดียว และพนักงานบริการทั้งหมดมีวงจรชีวิตตามเหตุการณ์ วงจรชีวิตของพนักงานบริการโดยทั่วไปมีลักษณะดังนี้:
- การลงทะเบียนและการดาวน์โหลดของผู้ปฏิบัติงาน อายุของพนักงานบริการเริ่มต้นเมื่อไฟล์ JavaScript ลงทะเบียน หากการลงทะเบียนสำเร็จ พนักงานบริการจะดาวน์โหลด และจากนั้นเริ่มทำงานในเธรดพิเศษ
- เมื่อมีการโหลดหน้าที่ควบคุมโดยพนักงานบริการ พนักงานบริการจะได้รับเหตุการณ์ 'การติดตั้ง' นี่เป็นเหตุการณ์แรกที่พนักงานบริการได้รับเสมอ และคุณสามารถตั้งค่าผู้ฟังสำหรับเหตุการณ์นี้ภายในผู้ปฏิบัติงานได้ โดยทั่วไป เหตุการณ์ 'การติดตั้ง' จะใช้เพื่อดึงข้อมูลและ/หรือแคชทรัพยากรใดๆ ที่พนักงานบริการต้องการ
- หลังจากที่พนักงานบริการเสร็จสิ้นการติดตั้ง พนักงานบริการจะได้รับเหตุการณ์ 'เปิดใช้งาน' เหตุการณ์นี้อนุญาตให้ผู้ปฏิบัติงานล้างทรัพยากรที่ซ้ำซ้อนที่ใช้โดยพนักงานบริการก่อนหน้านี้ หากคุณกำลังอัปเดตพนักงานบริการ กิจกรรมการเปิดใช้งานจะเริ่มทำงานก็ต่อเมื่อทำสิ่งนี้ได้อย่างปลอดภัย นี่เป็นครั้งเดียวที่ไม่มีหน้าที่โหลดซึ่งยังคงใช้เวอร์ชันเก่าของผู้ปฏิบัติงานบริการ
- หลังจากนั้น พนักงานบริการจะควบคุมทุกหน้าซึ่งโหลดหลังจากลงทะเบียนสำเร็จอย่างสมบูรณ์
- ขั้นตอนสุดท้ายของวงจรชีวิตคือความซ้ำซ้อน ซึ่งเกิดขึ้นเมื่อพนักงานบริการถูกเอาออกหรือแทนที่ด้วยเวอร์ชันที่ใหม่กว่า
วิธีใช้บริการคนงานใน JavaScript
API พนักงานบริการ ( MDN ) จัดเตรียมอินเทอร์เฟซที่ช่วยให้คุณสามารถสร้างและโต้ตอบกับพนักงานบริการใน JavaScript