عند تقديم طلب، يمكن ضبط عنوان 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
كما يلي:() => {...}
-
returns
-
الطُرق
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
)
بناءً على كائن Request
وResponse
كمدخل، سيؤدي ذلك إلى عرض
واعِد بتقديم Response
جديد.
إذا كان Response
الأصلي يحتوي على محتوى جزئي (أي أنّه
له الحالة 206)، يعني ذلك أنّه يستوفي متطلباتRange:
، وسيتم عرضه كما هو.
المعلمات
-
طلب
الطلب
طلب يجب أن يحتوي على نطاق: .
-
originalResponse
الرد
ردّ
المرتجعات
-
Promise<Response>
إما الرد
206 Partial Content
، مع نص الاستجابة المضبوط على شريحة المحتوى المحددة بواسطة عنوان أوRange:
أو استجابة416 Range Not Satisfiable
إذا كانت لا يمكن استيفاء شروط عنوانRange:
.