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