0Pricing
React Academy · บทเรียน

กลยุทธ์การแคชที่ขอบเครือข่ายสำหรับแอปรีแอ็กต์

ใช้ส่วนหัว Cache-Control, Cloudflare KV และ R2 เพื่อแคชหน้าที่แสดงผลแล้วและทรัพยากรแบบคงที่ที่ขอบเครือข่าย

กลยุทธ์การแคชที่ขอบเครือข่ายสำหรับแอปรีแอ็กต์ เป็นบทเรียน React Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน React Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน

ส่วนหัว Cache-Control สำหรับการแคชที่ขอบเครือข่าย

ส่วนหัวการตอบกลับ Cache-Control ควบคุมระยะเวลาที่ Cloudflare (และ CDN อื่น ๆ) จะแคชการตอบกลับ SSR ของคุณ คำสั่งสำคัญมีดังนี้: max-age (แคชของเบราว์เซอร์), s-maxage (ระยะเวลาของแคช CDN/แคชร่วม) และ stale-while-revalidate (แสดงเนื้อหาเก่าขณะที่ตรวจสอบความใหม่ในเบื้องหลัง)

s-maxage เทียบกับ max-age

s-maxage มีผลกับแคชร่วม (CDN) ขณะที่ max-age ใช้กับแคชของเบราว์เซอร์ สำหรับหน้า SSR โดยทั่วไปควรกำหนด s-maxage=60 (CDN แคชเป็นเวลา 60 วินาที) และ max-age=0 (เบราว์เซอร์ตรวจสอบความใหม่ทุกครั้ง) เพื่อให้ผู้ใช้ทุกคนได้รับเนื้อหาที่ค่อนข้างใหม่จากแคชที่ขอบเครือข่าย

การแคชหน้า SSR ด้วย stale-while-revalidate

การเพิ่ม stale-while-revalidate=30 ลงในส่วนหัว Cache-Control จะบอก Cloudflare ให้แสดงหน้าที่แคชไว้ทันที ขณะเดียวกันก็ดึงเวอร์ชันใหม่ในเบื้องหลัง ผู้ใช้จะได้รับการตอบกลับที่รวดเร็วเสมอ โดยความเก่าสูงสุดคือ s-maxage + stale-while-revalidate วินาที

หน้าเฉพาะบุคคล: ส่วนหัว Vary

เนื้อหาเฉพาะบุคคล (อิงตามเซสชันผู้ใช้หรือภูมิภาคภาษา) ต้องไม่ถูกส่งจากแคชร่วมให้ผู้ใช้ผิดคน ส่วนหัว Vary: Cookie บอก Cloudflare ให้ถือว่าค่า Cookie ที่ไม่ซ้ำกันแต่ละค่าเป็นรายการแคชแยกกัน จึงป้องกันไม่ให้ข้อมูลของผู้ใช้คนหนึ่งถูกส่งให้ผู้ใช้อีกคน

การข้ามแคชสำหรับคำขอที่ผ่านการยืนยันตัวตน

รูปแบบที่ใช้กันทั่วไปคือ ตรวจสอบคุกกี้เซสชันใน Worker ก่อนตัดสินใจว่าจะใช้แคชหรือไม่ หากมีคุกกี้เซสชัน ให้ข้ามแคชทั้งหมดแล้วเรนเดอร์การตอบกลับเฉพาะบุคคล หากไม่มีคุกกี้เซสชัน หน้านั้นเป็นหน้าสาธารณะและสามารถส่งจากแคชได้

Cloudflare KV: ที่เก็บคีย์-ค่าที่ขอบเครือข่าย

Cloudflare KV คือที่เก็บคีย์-ค่าที่กระจายไปทั่วโลก ซึ่งจัดเก็บข้อมูลไว้ใกล้ผู้ใช้ คุณสามารถแคช HTML ที่เรนเดอร์แล้วไว้ใน KV ได้ โดยจัดเก็บหน้าที่เรนเดอร์แล้วเป็นค่า พร้อมกำหนด TTL จากนั้นคำขอในอนาคตจะอ่านข้อมูลจาก KV ที่ขอบเครือข่ายแทนการเรนเดอร์ด้วย React ใหม่

ประสิทธิภาพการอ่านเทียบกับการเขียนของ KV

การอ่านจาก KV ทำได้รวดเร็ว เพราะข้อมูลถูกจำลองไปยัง PoP ที่ขอบเครือข่ายซึ่งให้บริการคำขอ โดยเวลาแฝงของการอ่านโดยทั่วไปต่ำกว่า 5ms อย่างไรก็ตาม การเขียนลง KV ใช้ความสอดคล้องในที่สุด: การเขียนในภูมิภาคหนึ่งจะเผยแพร่ไปยัง PoP ทั่วโลกทั้งหมดภายใน 60 วินาที ซึ่งหมายความว่าผู้ใช้บางรายอาจเห็นข้อมูลเก่าอยู่ชั่วขณะ

Cloudflare R2: ที่เก็บอ็อบเจ็กต์สำหรับทรัพยากรขนาดใหญ่

Cloudflare R2 คือบริการที่เก็บอ็อบเจ็กต์ที่เข้ากันได้กับ S3 และไม่มีค่าธรรมเนียมการส่งข้อมูลออก เหมาะสำหรับทรัพยากรขนาดใหญ่ที่ไม่เหมาะจะเก็บใน KV เช่น โมดูล WASM ภาพ OG ที่เรนเดอร์ไว้ล่วงหน้า และชุดข้อมูล JSON ขนาดใหญ่ Workers เข้าถึง R2 ผ่านการผูกทรัพยากรได้เช่นเดียวกับ KV

แท็กแคชสำหรับการทำให้แคชใช้ไม่ได้อย่างละเอียด

Cloudflare Enterprise รองรับแท็กแคช โดยคุณติดแท็กการตอบกลับด้วย Cache-Tag: product-42 และเมื่อผลิตภัณฑ์หมายเลข 42 เปลี่ยนแปลง คุณก็เรียก API ของ Cloudflare เพื่อล้างการตอบกลับทั้งหมดที่ติดแท็ก product-42 ได้ วิธีนี้ทำให้ล้างแคชเฉพาะจุดได้โดยไม่ต้องล้างแคชทั้งหมด

การจัดการการทำให้แคชใช้ไม่ได้เมื่อปรับใช้

เมื่อคุณปรับใช้ Worker เวอร์ชันใหม่ HTML ที่แคชไว้อาจอ้างอิงชื่อไฟล์บันเดิล JS เก่า กลยุทธ์ที่รัดกุมคือใส่เวอร์ชันของการปรับใช้ไว้ในคีย์แคช หรือใช้ชื่อไฟล์บันเดิลที่มีเวอร์ชัน (ผ่านการทำแฮชเนื้อหาของ Vite) เพื่อให้ HTML เก่าอ้างอิงไฟล์ JS ที่ถูกต้องและมีอยู่ในแคชเสมอ

การใช้งานแคช HTML บน KV

Worker ที่แคช HTML ของ SSR ไว้ใน KV จะทำตามรูปแบบนี้: คำนวณคีย์แคชจาก URL (และการตั้งค่าภาษาหากต้องการ) ตรวจสอบว่า KV มีข้อมูลหรือไม่ และส่ง HTML ที่แคชไว้กลับทันทีหากพบข้อมูล หากไม่พบ ให้เรนเดอร์ด้วย React จัดเก็บผลลัพธ์ไว้ใน KV พร้อม TTL แล้วส่ง HTML ที่เพิ่งเรนเดอร์กลับไป

โมเดลความสอดคล้องของ Cloudflare KV

Cloudflare KV ใช้โมเดลความสอดคล้องแบบใดสำหรับการเขียน

สรุปบทเรียน

การแคชที่ขอบเครือข่ายสำหรับแอป React ใช้หลายกลยุทธ์ร่วมกัน ได้แก่ s-maxage ของ Cache-Control สำหรับแคชหน้าสาธารณะบน CDN, Vary: Cookie เพื่อป้องกันไม่ให้มีการแชร์การตอบกลับเฉพาะบุคคล, KV สำหรับ HTML ที่เรนเดอร์แล้วและแคชไว้ที่ขอบเครือข่าย และแท็กแคชสำหรับการล้างแคชอย่างละเอียด โมเดลความสอดคล้องในที่สุดของ KV หมายความว่าการเผยแพร่การเขียนอาจใช้เวลาสูงสุด 60 วินาที ดังนั้นควรออกแบบ TTL และกลยุทธ์การล้างแคชให้เหมาะสม

คำถามที่พบบ่อย

บทเรียน “กลยุทธ์การแคชที่ขอบเครือข่ายสำหรับแอปรีแอ็กต์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “กลยุทธ์การแคชที่ขอบเครือข่ายสำหรับแอปรีแอ็กต์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส React Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “กลยุทธ์การแคชที่ขอบเครือข่ายสำหรับแอปรีแอ็กต์”

ใช้ส่วนหัว Cache-Control, Cloudflare KV และ R2 เพื่อแคชหน้าที่แสดงผลแล้วและทรัพยากรแบบคงที่ที่ขอบเครือข่าย คุณปฏิบัติ React Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน React Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน React Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “กลยุทธ์การแคชที่ขอบเครือข่ายสำหรับแอปรีแอ็กต์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน React Academy นี้ได้ไหม

ได้ บทเรียน React Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การแสดงผลที่ขอบเครือข่ายคืออะไรและเหตุใดจึงสำคัญ
  2. รีแอ็กต์บน Cloudflare Workers ด้วย Hono
  3. SSR แบบสตรีมจากขอบเครือข่าย
  4. กลยุทธ์การแคชที่ขอบเครือข่ายสำหรับแอปรีแอ็กต์
← กลับไปที่ React Academy