Hotwire: HTML ผ่านเครือข่าย
(hotwire.dev)- แนวทางการสร้างเว็บเพจแบบล่าสุดที่ส่ง HTML โดยตรง แทนการส่ง JavaScript และ JSON
→ ใช้กับฟรอนต์เอนด์ของบริการอีเมล Hey
- โหลดหน้าได้รวดเร็ว, เรนเดอร์ฝั่งเซิร์ฟเวอร์, และสามารถใช้ภาษาฝั่งเซิร์ฟเวอร์ได้หลากหลาย โดยไม่ต้องแลกกับความเร็วและการตอบสนองแบบ SPA
Turbo + Stimulus + Strada
- Turbo: แกนหลักของ Hotwire เป็นชุดเทคโนโลยีสำหรับสร้างเว็บแอปที่รวดเร็ว
→ Turbo Drive: เปลี่ยนการคลิกลิงก์ a และการ submit ฟอร์มทั้งหมดให้เป็น fetch เพื่อดึงข้อมูลจากเซิร์ฟเวอร์แล้วแทนที่ body ทำให้ทำงานเหมือน SPA
→ Turbo Frames: แยกหน้าที่ซับซ้อนออกเป็นเฟรมเพื่อโหลดและเรนเดอร์แต่ละส่วน คล้าย iframe แต่เป็นเฟรมเสมือนที่ทำงานภายใน DOM เดียว
→ Turbo Streams: ส่งการเปลี่ยนแปลงของหน้าเป็นสตรีมผ่าน WebSocket
→ Turbo Native: รองรับการนำแนวทางของ Turbo ไปใช้กับแอปไฮบริดบน iOS/Android
-
Stimulus: Turbo จัดการไปแล้ว 80% และส่วนที่เหลือให้ Stimulus จัดการ เป็นเฟรมเวิร์ก JS ขนาดเล็กที่สุดเท่าที่จำเป็น
-
Strada: บริดจ์ที่เชื่อมเว็บกับเนทีฟ มีกำหนดเปิดตัวในปีหน้า
7 ความคิดเห็น
แนวคิดของการส่ง HTML ทำให้นึกถึง PJAX ขึ้นมาเลยครับ
ดูเหมือนว่า strada จะเป็นการนำสิ่งที่พูดถึงไว้ใน https://m.signalvnoise.com/basecamp-3-for-ios-hybrid-architecture/ ออกมาเป็นโค้ด
เดิมที Stimulus ก็เป็นเฟรมเวิร์ก js ที่ Basecamp ใช้อยู่แล้ว แต่พอดูในรีโพซิทอรีของ Turbo ก็เหมือนว่าแค่เปลี่ยน Turbolink เป็น Turbo นั่นเอง ส่วน Strada ยังไม่เปิดเผยออกมาเลยยังไม่ค่อยทราบมากนัก แต่ดูเหมือนว่าเป็นการนำเทคโนโลยีเดิมมารวมกันแล้วใช้เป็นแนวทางที่เรียกว่า Hotwire
ดูเหมือนว่าเดี๋ยวนี้จะมีความพยายามในแนวทางแบบนี้ออกมามากขึ้นเรื่อย ๆ เหมือนกัน ทั้ง Phoenix LiveView ด้วย หรือว่านี่คือจุดที่ความเหนื่อยล้าจากฝั่งฟรอนต์เอนด์พุ่งถึงขีดสุดแล้ว?
คุณบีอึงจ์ชอบขึ้นไปบนหลังคาหรือเปล่า?
ไอเดียน่าสนใจดีนะ
ตอนที่มีการเปิดเผยเทคสแตกของ Hey https://th.news.hada.io/topic?id=2355
เขาบอกว่านอกจาก Stimulus กับ Turbolinks แล้ว ฝั่งฟรอนต์เอนด์ยังมี α เพิ่มเติมอีกตัว ดูเหมือนว่านั่นจะเป็น Hotwire นี่เอง