วันนี้พลกลับมาอัพเดตสภาพแวดล้อมของ Progressive Web App (ย่อว่า PWA) กันเช่นเคย เพราะหลังจากแนะนำวิธีการสร้าง Progressive Web App ด้วย Ionic Framework ผ่านคลิปวิดีโอบน Youtube ก็มีพวกเราเข้ามาพูดคุยมากมาย ถือว่ามีการตื่นตัวในการทำ PWA กันเยอะทีเดียว
และวันนี้พลไปเจอการเปลี่ยนแปลงของฝั่ง Apple ในส่วนโปรแกรมท่องเว็บ Safari ที่น่าสนใจ และดูน่าจะสร้างความสงสัยให้พวกเราที่ใช้ Ionic Framework ไม่มากก็น้อย ทำความเข้าใจกันครับ
การเปลี่ยนแปลงของ Apple Safari: 7 วัน ไม่เข้าซ้ำ = ลบ
จริงๆ การเปลี่ยนแปลงที่ชัดเจนจากทางฝั่ง Apple คือการต่อต้านการ tracking การท่องเว็บของลูกค้าบน Web brower ที่ชื่อ Safari ของตัวเอง โดยเรียกมันว่า Intelligent Tracking Prevention
ซึ่งเป็นการเคลื่อนไหวที่ค่อนข้างน่าพอใจ แต่ในแง่การทำงานล่าสุด Apple ได้โพสลงใน blog ของ Webkit ว่า
Now ITP has aligned the remaining script-writable storage forms with the existing client-side cookie restriction, deleting all of a website’s script-writable storage after seven days of Safari use without user interaction on the site. These are the script-writable storage forms affected (excluding some legacy website data types):
Indexed DB
LocalStorage
Media keys
SessionStorage
Service Worker registrations
ซึ่งการเปลี่ยนแปลงนี้เอง ที่สามารถตีความได้ว่า
Safari จะทำการลบข้อมูลที่เกิดจากการรันโค้ด (ในที่นี้ก็น่าจะหมายถึงบรรดา Script ต่างๆ) หลังจาก 7 วัน?!
การทำงานจะเป็นแบบนี้
- วันแรกเราเข้าเว็บ A ผ่าน Safari เว็บ A มี service worker เว็บ A มีการเขียนข้อมูลลง Storage ถ้าวันรุ่งขึ้นเราเข้าเว็บ A ตรงนี้ก็จะไม่มีการนับวันเพิ่ม
- แต่วันถัดมาเราเข้าเว็บ B ผ่าน Safari และทั้งวันนั้นเราไม่เข้า เว็บ A อีกเลย ตรงนี้จะเริ่มนับเป็นวันที่ 1
- วันต่อมาเราเข้าเว็บ C ผ่าน Safari และไม่ได้เข้าเว็บ A อีกเลย ตรงนี้นับเป็นวันที่ 2
- ผ่านไป 7 วัน เรายังไม่ได้ใช้ Safari เข้าเว็บ A อีก ตรงนี้ข้อมูลจะถูกลบ
น่ากลัวใช่ไหมล่ะ? คำถามของพวกเราคือ แล้วแบบนี้ PWA จะเก็บข้อมูลได้ยังไง? มาดูกันว่าได้ หรือไม่ได้
Progressive Web App แบบทั่วไป จะได้รับผลกระทบหรือไม่?
Progressive Web App ถูกเรียกอีกชื่อว่า Home Screen App ซึ่งในทางเทคนิคแล้ว กฎ 7 วันส่งผลต่อ Home Screen App เหล่านี้ด้วย
แต่เนื่องจากเว็บแอพพลิเคชั่นที่ถูกบันทึกไว้บนหน้า Home Screen จะถูกเปิดเพียงแค่ domain เดียวเท่านั้น ไม่มีการเปิดไปที่ domain ของเว็บอื่นๆ
ทำให้ Home Screen App นี้ถูกละเว้นผลที่เกิดจาก 7 วันลบทิ้งครับ
ทั้งหมดนี้ หมายถึงเว็บแอพพลิเคชั่นที่สร้างขึ้นเป็น Progressive Web App ด้วยวิธีต่างๆ ไม่ว่าจะเป็น Flutter, React, Vue, หรือแม้แต่ JQuery รวมทั้ง Ionic Framework ด้วย
Progressive Web App ที่สร้างจาก Ionic ได้รับผลกระทบหรือไม่?
ตัว Progressive Web App ที่สร้างจาก Ionic Framework ก็นับเป็นหนึ่งในกลุ่ม Home Screen App เช่นเดียวกัน
ทำให้แอพ PWA ที่สร้างด้วย Ionic Framework ไม่ได้รับผลกระทบการกลไกใหม่ของ Safari ในการลบข้อมูลออกจาก Storage หลัง 7 วันดังกล่าวด้วย
แอพ iOS ที่สร้างจาก Ionic ได้รับผลกระทบหรือไม่?
เนื่องจากการทำสอบของทีมงาน Ionic ทำให้เราได้ทราบรายละเอียดของกลไกนี้ชัดเจนมากขึ้นว่า
กฎ 7 วันไม่เข้า ลบทิ้งนี้ จะมีผลกับเว็บแอพที่เปิดผ่านแอพ Safari เท่านั้น
ดังนั้น เนื่องจากตัว Runtime ของ Ionic Framework ทั้ง Capacitor และ Cordova เปลี่ยนมาใช้ WKWebView แล้ว ทำให้กลไกของ Safari ไม่สามารถมีผลกับการทำงานของแอพ iOS ที่สร้างจาก Ionic Framework ได้ครับ
ติดตามการเคลื่อนไหวของเรื่องนี้ พร้อมหลักสูตรน่าสนใจได้ด้านล่าง
- ติดตามจากแฟนเพจ Nextflow
- กดติดตามคลิปใหม่ๆ Subscribe YouTube Channel ของพลได้เลย
- โทรติดต่อบริการจัดอบรม 083-071-3373 คลิกโทรผ่านมือถือได้เลย
- สอบถามผ่านทาง LINE คลิก
- สอบถามผ่านทาง Facebook คลิก
เปิดอบรม React Native สำหรับผู้เริ่มต้น
ปูพื้นฐาน React และ React Native เข้าใจง่าย, ใช้ได้จริง, เนื้อหาใช้ในการทำแอพ Enterprise ขององค์กรได้
คอร์สออนไลน์เริ่มต้นสร้าง Mobile App ด้วย Google Flutter
เหมาะผู้เริ่มต้น และนักพัฒนาเว็บ, เข้าใจง่าย, ใช้ได้จริง
สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373
เปิดอบรมสร้าง Cross Platform Mobile Application ด้วย Ionic Framework
เหมาะสำหรับคนทำเว็บ, เริ่มต้น JavaScript ES6 และ Angular เข้าใจง่าย, ใช้ได้จริง
สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373
โปรหน้าฝน! เรียนรอบสด รับคอร์สออนไลน์มูลค่ากว่า 5800 บาทฟรี!
อ้างอิง – Apple, Ionic Blog