Tags:
Node Thumbnail

Josh Larson วิศวกร Vox Media สร้างเฟรมเวิร์ค Flareact เป็นเฟรมเวิร์คทดลองที่ได้รับแรงบันดาลใจมาจาก Next.js เพื่อให้แอปพลิเคชั่นแบบ React สามารถเรนเดอร์ด้วย Cloudflare Workers ได้

ปกติแล้ว React ออกแบบสำหรับสร้างแอปพลิเคชั่นที่เรนเดอร์ฝั่งเบราว์เซอร์ทั้งหมด หลายครั้งประสิทธิภาพบนเบราว์เซอร์ไม่ดีนัก และบริการหลายตัวที่ต้องการอ่าน HTML โดยไม่สามารถเรนเดอร์ React ได้ก็จะได้ข้อมูลไม่ครบ การทำ server side rendering (SSR) จึงเป็นฟีเจอร์สำคัญที่หลายเว็บใช้งานกัน เช่น Next.js ที่ได้รับความนิยมสูง

No Description

ข้อจำกัดสำคัญของ Next.js ที่ทำให้รันบน Cloudflare Workers ไม่ได้คือมันใช้ Node.js HTTP Server API ขณะที่ Cloudflare Workers ใช้ V8 และมี FetchEvent API ของตัวเอง Larson จีงสร้าง Flareact ที่รองรับ API ของ Cloudflare Workers แทน

การใช้งานของ Flareact ใกล้เคียงกับ Next.js อย่างมาก ระบบ routing แบบไฟล์ยังคงเหมือนเดิม และชื่อโมดูลหลายตัวก็หยิบยืมกันมา แต่ Larson ระบุว่าการปรับแต่งประสิทธิภาพยังไม่ดีเท่าใดนัก แต่ความได้เปรียบสำคัญคือตัวซอฟต์แวร์ที่ทำงานบน Workers นั้นอยู่ใกล้กับผู้ใช้อย่างมาก (ตามปกติของ CDN) และ Flareact รองรับ Cache API ของ Cloudflare Workers ทำให้ควบคุมได้อย่างละเอียดว่าจะใช้ค่าจากในแคชหรือไม่

ที่มา - Cloudflare Blog

Get latest news from Blognone

Comments

By: peat_psuwit
ContributorAndroidUbuntuWindows
on 5 September 2020 - 23:21 #1174467

จริงๆ แล้ว Cloudflare ไม่ได้คิด FetchEvent API เองเสียทีเดียวนะ เค้าอ้างอิงกับ API ที่ใช้ใน Service Worker (แต่เค้าก็เพิ่ม API หลายอย่างอยู่) ซึ่งหมายความว่า ถ้าเขียนดีๆ เราสามารถเอาโค้ดเดียวกันรันทั้งใน service worker และ Cloudflare Worker ได้