คำขอช่วงงาน

เมื่อส่งคำขอ คุณสามารถกำหนดส่วนหัว 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 มีลักษณะดังนี้

    () => {...}

เมธอด

createPartialResponse()

workbox-range-requests.createPartialResponse(
  request: Request,
  originalResponse: Response,
)

กำหนดให้ออบเจ็กต์ Request และ Response เป็นอินพุต จะแสดงผลเป็น สัญญาว่าจะได้ Response ใหม่

หาก Response เดิมมีเนื้อหาบางส่วนอยู่แล้ว (นั่นคือมี สถานะ 206) ในกรณีนี้จะถือว่าเป็นไปตามRange: และจะส่งคืนตามที่เป็นอยู่

พารามิเตอร์

  • ส่งคำขอ

    ส่งคำขอ

    คำขอ ซึ่งควรมีช่วง: ส่วนหัว

  • originalResponse

    คำตอบ

    การตอบกลับ

การคืนสินค้า

  • คำมั่นสัญญา<คำตอบ>

    การตอบกลับ 206 Partial Content แบบใดก็ได้ที่มี เนื้อหาการตอบกลับจะตั้งค่าเป็นส่วนแบ่งของเนื้อหาที่ระบุโดยคำขอ Range: หรือการตอบกลับ 416 Range Not Satisfiable หากค่า ไม่ตรงกับเงื่อนไขของส่วนหัว Range: