כששולחים בקשה, אפשר להגדיר כותרת range
שלפיה
את השרת כדי להחזיר רק חלק מהבקשה המלאה. הזה
שימושי לקבצים מסוימים כמו קובץ וידאו, שבו
עשוי לשנות את מיקום הסרטון.
מה המודול הזה עושה?
יכול להיות שתצטרכו להציג קובץ ששמור במטמון, אבל הדפדפן הגדיר כותרת range
. בדרך כלל, הכותרת
המערכת תתעלם ממנו.
המודול הזה יקרא את התגובה שנשמרה במטמון ויחזיר את טווח הנתונים שצוין.
שימוש בסיסי
כדי להשתמש בבקשות לטווח של תיבת עבודה, מוסיפים את הפלאגין אסטרטגיה שברצונכם לבדוק לגביה בקשות לטווח.
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
הפלאגין של בקשות טווח מאפשר למלא בקלות בקשה עם כותרת 'טווח' באמצעות תשובה שנשמרה במטמון.
כדי לעשות זאת, הוא מיירט את קריאת החזרה (callback) של הפלאגין cachedResponseWillBeUsed
ומחזיר את קבוצת המשנה המתאימה של גוף התגובה שנשמר במטמון.
מאפיינים
-
constructor
ריק
הפונקציה
constructor
נראית כך:() => {...}
-
החזרות
-
שיטות
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
)
כשנותנים אובייקטים מסוג Request
ו-Response
כקלט, הפונקציה מחזירה הבטחה ל-Response
חדש.
אם ה-Response
המקורי כבר מכיל תוכן חלקי (כלומר, יש בו
סטטוס של 206), אז ההנחה היא שהוא כבר ממלא את Range:
את הדרישות, ולהחזיר אותו כפי שהוא.
פרמטרים
-
בקשה
בקשה
בקשה, שצריכה לכלול את הכותרת Range:.
-
originalResponse
תשובה
תשובה.
החזרות
-
Promise<Response>
תגובה
206 Partial Content
, עם גוף התגובה מוגדר לקטע התוכן שצוין על ידי הבקשה הכותרתRange:
, או תגובת416 Range Not Satisfiable
אם לא יכולים לעמוד בתנאים של הכותרתRange:
.