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