ข้ามไปยังเนื้อหา

Rendering, Performance & UX

Astro ให้เราเริ่มที่ baseline ที่เร็วอยู่แล้ว: static HTML, zero JavaScript, หน้าเล็ก โมดูลนี้ว่าด้วยการรักษา baseline นั้นไว้ตอนที่เราเพิ่มความ polish — navigation แบบ client-side ที่ลื่น, image ที่ optimize และ caching — โดยไม่แอบเอาความอืดที่ Astro ตั้งใจหลีกเลี่ยงกลับเข้ามา

ธีมตลอดโมดูล: ทุกการเพิ่ม feature ควรใช้ JavaScript และ bytes ให้น้อยที่สุด view transition, image, cached response — แต่ละอย่างมี “วิธีที่ถูก” ที่รักษา baseline ที่เร็วไว้ และโมดูลนี้จะสอนวิธีเหล่านั้น

บทเรียนสิ่งที่จะได้เรียน
View transitions<ClientRouter /> สำหรับ navigation แบบ SPA ที่มี animation
Images & assetscomponent <Image /> และ <Picture /> กับ astro:assets
Performance & zero-JSเลือก directive และ prefetch เพื่อส่ง JavaScript ให้น้อยลง
Caching & edgeCache-Control, edge caching และ shell ที่ cache ได้
flowchart TB
  base["Baseline: static HTML, zero JS"] --> nav["Add smooth nav: ClientRouter (small JS)"]
  base --> img["Add images: astro:assets (optimized, lazy)"]
  base --> cache["Add caching: Cache-Control at the edge"]
  nav --> fast["Still fast: minimal JS, cacheable"]
  img --> fast
  cache --> fast
รักษา baseline ที่เร็วไว้ตอนเพิ่ม feature
  • Navigation รู้สึกเหมือนทันทีได้ด้วย <ClientRouter /> และ prefetch — ด้วยไม่กี่กิโลไบต์ ไม่ใช่ทั้ง SPA framework
  • Images มักเป็นสิ่งที่หนักที่สุดในหน้า astro:assets optimize ให้อัตโนมัติ
  • Caching เปลี่ยน render ให้เป็นการ lookup — response ที่เร็วที่สุดคืออันที่เราไม่ต้องคำนวณ
ธีมหลักของโมดูลนี้คืออะไร?
ในหน้าเว็บทั่วไป อะไรมักเป็นสิ่งที่หนักที่สุดที่ต้องโหลด?