การสตรีมด้วย ReadableStream
สตรีมการตอบกลับขนาดใหญ่ทีละส่วนโดยใช้ Web Streams API ใน +server.js
การสตรีมด้วย ReadableStream เป็นบทเรียน Sveltejs Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Sveltejs Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Sveltejs Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงต้องใช้สตรีม
สามารถส่งการตอบกลับขนาดใหญ่ทีละส่วนได้ ทำให้ไคลเอนต์เริ่มรับข้อมูลได้ทันที
API ReadableStream
ใช้ Web Streams API มาตรฐานเพื่อสร้างการตอบกลับแบบสตรีม
const stream = new ReadableStream({
async start(controller) {
for (const chunk of source) {
controller.enqueue(new TextEncoder().encode(chunk));
}
controller.close();
}
});
return new Response(stream);เหตุการณ์ที่ส่งจากเซิร์ฟเวอร์
ส่งข้อมูล text/event-stream แบบสตรีมสำหรับการอัปเดตแบบสด
การถ่ายโอนแบบแบ่งเป็นชิ้น
HTTP จะส่งข้อมูลแต่ละชิ้นที่เข้าคิวไว้ผ่านเครือข่ายทันทีที่พร้อม
กรณีการใช้งาน
บันทึกแบบเรียลไทม์ การสร้างข้อความด้วย AI การอัปโหลดหรือดาวน์โหลดไฟล์ และเหตุการณ์ความคืบหน้า
ฝั่งไคลเอ็นต์
ใช้ response.body.getReader() บนฝั่งไคลเอ็นต์เพื่ออ่านข้อมูลจากสตรีม
การควบคุมแรงดันย้อนกลับ
สตรีมจะหยุดสร้างข้อมูลชั่วคราวเมื่อผู้รับข้อมูลทำงานช้า โปรดหลีกเลี่ยงการบล็อกการทำงานของผู้ผลิตข้อมูล
การปิด
โปรดเรียก controller.close() เสมอเมื่อทำงานเสร็จ หากเกิดข้อผิดพลาด ให้เรียก controller.error()
ตัวปรับให้เข้ากัน
การรองรับสตรีมแตกต่างกันไปตามตัวปรับให้เข้ากัน โดย adapter-node ใช้งานได้ แต่สภาพแวดล้อมรันไทม์แบบเอดจ์บางประเภทมีข้อจำกัด
ประสิทธิภาพ
การสตรีมช่วยลดเวลาไปจนถึงไบต์แรกและทำให้ผู้ใช้รู้สึกว่าแอปทำงานเร็วขึ้นอย่างมาก
ใช้ร่วมกับ load
การโหลดแบบสตรีมของ SvelteKit จะส่งคืนพรอมิสที่เสร็จสมบูรณ์ตามเวลา ซึ่งแตกต่างจากสตรีมดิบ
ตรวจสอบอย่างรวดเร็ว
ประโยชน์หลักของการสตรีมคืออะไร
สรุปทบทวน
ครอบ ReadableStream ไว้ใน Response เพื่อสตรีมข้อมูลแต่ละส่วนจาก +server.js อย่างต่อเนื่อง
คำถามที่พบบ่อย
บทเรียน “การสตรีมด้วย ReadableStream” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การสตรีมด้วย ReadableStream” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Sveltejs Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Sveltejs Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การสตรีมด้วย ReadableStream”
สตรีมการตอบกลับขนาดใหญ่ทีละส่วนโดยใช้ Web Streams API ใน +server.js คุณปฏิบัติ Sveltejs Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Sveltejs Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Sveltejs Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การสตรีมด้วย ReadableStream” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Sveltejs Academy นี้ได้ไหม
ได้ บทเรียน Sveltejs Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- +server.js: GET POST PUT DELETE
- Request และ RequestEvent
- การส่งคืนการตอบกลับ JSON
- การสตรีมด้วย ReadableStream