connectivity-js - ไลบรารีโอเพนซอร์สสำหรับควบคุมสถานะ online/offline ของเว็บแอปพลิเคชัน
(github.com/minseong0324)ลอจิกสำหรับจัดการสถานะ online/offline ในแอปฝั่งฟรอนต์เอนด์ ดูเหมือนจะแทรกซึมเข้าไปอยู่ในบิสสิเนสลอจิกบ่อยกว่าที่คิดครับ
พอลงมือทำจริง โค้ดอย่าง navigator.onLine, event listener ของ online/offline, การแยกเงื่อนไข retry, หรือการจัดการ action ในสถานะ offline มักกระจัดกระจายอยู่ตามจุดต่าง ๆ ได้ง่าย และยิ่งเวลาผ่านไปก็ยิ่งจัดการให้สอดคล้องกันได้ยากขึ้น
การรองรับสถานะออฟไลน์มักถูกเลื่อนความสำคัญออกไปเสมอ และยิ่งทุกวันนี้ความเร็วในการพัฒนาฟีเจอร์ด้วย AI สูงขึ้น ผมยิ่งรู้สึกว่าสิ่งสำคัญคือการยกระดับเพดานล่างของประสบการณ์ใช้งานผลิตภัณฑ์ไปพร้อมกัน เพื่อให้ยังคงรักษาประสบการณ์ขั้นต่ำไว้ได้แม้อยู่ในสภาพแวดล้อมเครือข่ายที่ไม่ดี
เพราะอยากจัดการปัญหานี้ให้สะอาดขึ้นอีกหน่อย เลยสร้างโอเพนซอร์สชื่อ connectivity-js ขึ้นมาครับ
- การควบคุมสถานะเครือข่ายแบบประกาศเชิง declarative
- core แบบ framework-agnostic + React adapter
- offline action queue
- deduplication / backoff retry
GitHub
https://github.com/minseong0324/connectivity-js
ตอนนี้ยังเป็นเวอร์ชัน 0.x อยู่ จึงยังมีอีกหลายส่วนทั้งการติดตั้งภายในและการออกแบบ API ที่จะค่อย ๆ ปรับปรุงต่อไป หากคุณเคยเจอปัญหาคล้ายกันหรือมีไอเดียในการปรับปรุง
ยินดีรับทั้ง feedback, issue และ PR ครับ
ยังไม่มีความคิดเห็น