هنگام درخواست، می توان یک هدر range
تنظیم کرد که به سرور می گوید فقط بخشی از درخواست کامل را برگرداند. این برای فایلهای خاصی مانند یک فایل ویدیویی مفید است، جایی که کاربر ممکن است مکان پخش ویدیو را تغییر دهد.
این ماژول چه کاری انجام می دهد؟
ممکن است سناریوهایی وجود داشته باشد که بخواهید یک فایل کش را ارائه دهید، اما مرورگر یک هدر range
تنظیم کرده است. به طور معمول هدر نادیده گرفته می شود.
این ماژول پاسخ ذخیره شده را می خواند و محدوده مشخص شده از داده ها را برمی گرداند.
استفاده پایه
میتوانید با افزودن افزونه به استراتژی موردنظر برای بررسی درخواستهای محدوده از Workbox Range Requests استفاده کنید.
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:
را برآورده میکند و آن را همانطور که هست برمیگرداند.
مولفه های
- درخواست
درخواست
یک درخواست، که باید حاوی سرآیند Range: باشد.
- پاسخ اصلی
واکنش
یک جواب.
برمی گرداند
قول<پاسخ>
یا یک پاسخ
206 Partial Content
، با بدنه پاسخ به قسمتی از محتوای مشخص شده توسطRange:
هدر درخواست، یا یک پاسخ416 Range Not Satisfiable
اگر شرایط هدرRange:
برآورده نشود.