เมื่อส่งคำขอ คุณสามารถกำหนดส่วนหัว range
เพื่อแจ้ง เซิร์ฟเวอร์จะส่งคืนเฉพาะบางส่วนของคำขอแบบเต็ม ช่วงเวลานี้ มีประโยชน์สำหรับไฟล์บางประเภท เช่น ไฟล์วิดีโอ ซึ่งผู้ใช้ อาจเปลี่ยนตำแหน่งในการเล่นวิดีโอ
โมดูลนี้ทํางานอย่างไร
อาจมีบางกรณีที่คุณต้องการแสดงไฟล์ที่แคชไว้ แต่เบราว์เซอร์ได้ตั้งค่าส่วนหัว range
โดยปกติแล้ว ระบบจะไม่สนใจส่วนหัว
โมดูลนี้จะอ่านการตอบกลับที่แคชไว้และแสดงผล ช่วงของข้อมูลที่ระบุ
การใช้งานพื้นฐาน
คุณสามารถใช้คําขอช่วงของ Workbox ได้โดยเพิ่มปลั๊กอินลงในกลยุทธ์ที่ต้องการตรวจสอบคําขอช่วง
import {registerRoute} from 'workbox-routing'; import {CacheFirst} from 'workbox-strategies'; import {RangeRequestsPlugin} from 'workbox-range-requests'; registerRoute( ({url}) => url.pathname.endsWith('.mp4'), new CacheFirst({ plugins: [ new RangeRequestsPlugin(), ], }); );
การใช้งานขั้นสูง
หากต้องการใช้ตรรกะนี้นอกพลิแกน คุณสามารถใช้ฟังก์ชัน createPartialResponse()
import {createPartialResponse} from 'workbox-range-requests'; createPartialResponse(request, cachedResponse);
ดูข้อมูลเพิ่มเติมได้ที่เอกสารอ้างอิง
ประเภท
RangeRequestsPlugin
ปลั๊กอินคำขอช่วงช่วยให้คำขอที่มี "ช่วง" ทำได้ง่ายขึ้น ส่วนหัวถึง จะได้รับการตอบสนองโดยการตอบกลับที่แคชไว้
โดยจะดำเนินการนี้โดยการขัดจังหวะการเรียกกลับของcachedResponseWillBeUsed
ปลั๊กอิน และแสดงผลชุดย่อยที่เหมาะสมของเนื้อหาคำตอบที่แคชไว้
พร็อพเพอร์ตี้
- เครื่องมือสร้าง
โมฆะ
ฟังก์ชัน
constructor
มีลักษณะดังนี้() => {...}
- returns
-
เมธอด
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
): Promise<Response>
กำหนดให้ออบเจ็กต์ Request
และ Response
เป็นอินพุต จะแสดงผลเป็น สัญญาว่าจะได้ Response
ใหม่
หาก Response
เดิมมีเนื้อหาบางส่วนอยู่แล้ว (นั่นคือมี สถานะ 206) ในกรณีนี้จะถือว่าเป็นไปตามRange:
และจะส่งคืนตามที่เป็นอยู่
พารามิเตอร์
- ส่งคำขอ
ส่งคำขอ
คำขอ ซึ่งควรมีช่วง: ส่วนหัว
- originalResponse
คำตอบ
การตอบกลับ
การคืนสินค้า
-
คำมั่นสัญญา<คำตอบ>
การตอบกลับ
206 Partial Content
แบบใดก็ได้ที่มี เนื้อหาการตอบกลับจะตั้งค่าเป็นส่วนแบ่งของเนื้อหาที่ระบุโดยคำขอRange:
หรือการตอบกลับ416 Range Not Satisfiable
หากค่า ไม่ตรงกับเงื่อนไขของส่วนหัวRange: