هنگام درخواست، می توان یک هدر 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:
برآورده نشود.