जब सर्विस वर्कर का पहली बार परिचय हुआ, तो कैश मेमोरी में डेटा सेव करने की सामान्य रणनीतियों का एक सेट सामने आया. कैश मेमोरी में सेव करने की रणनीति, एक पैटर्न है जो यह तय करता है कि सर्विस वर्कर कैसे फ़ेच इवेंट मिलने के बाद, एक रिस्पॉन्स जनरेट होता है.
workbox-strategies
से, कैश मेमोरी में डेटा सेव करने की सबसे सामान्य रणनीति उपलब्ध कराई जाती है, ताकि इन कामों को करना आसान हो जाए
उसे अपने सर्विस वर्कर पर लागू कर सकते हैं.
हम Workbox के साथ काम करने वाली रणनीतियों के अलावा ज़्यादा जानकारी नहीं देंगे, हालाँकि, ऑफ़लाइन कुकबुक में जाकर ज़्यादा जानकारी पाई जा सकती है.
रणनीतियों का इस्तेमाल करना
इन उदाहरणों में, हम आपको वर्कबॉक्स कैश मेमोरी को इस्तेमाल करने का तरीका दिखाएंगे
workbox-routing
के साथ रणनीतियां. यहां कुछ विकल्प दिए गए हैं, जिनका इस्तेमाल करके
जिन रणनीतियों का इस्तेमाल किया गया है.
इस दस्तावेज़ का 'रणनीति' सेक्शन कॉन्फ़िगर करना.
बेहतर इस्तेमाल वाले सेक्शन में, हम आपको बताएंगे कि
workbox-routing
के बिना सीधे कैश मेमोरी में सेव करने की रणनीतियां.
पुरानी-दोबारा पुष्टि करने वाला
फिर से पुष्टि करने के दौरान पुरानी जानकारी पैटर्न की मदद से आपको अनुरोध का जवाब जल्द से जल्द कैश मेमोरी में सेव किया गया रिस्पॉन्स, अगर उपलब्ध हो, तो नेटवर्क अनुरोध पर वापस जाएगा कैश मेमोरी में सेव नहीं किया गया हो. इसके बाद, कैश मेमोरी को अपडेट करने के लिए नेटवर्क के अनुरोध का इस्तेमाल किया जाएगा. इसके उलट कुछ तरीकों से लागू करना दोबारा पुष्टि करने के बाद, यह रणनीति हमेशा दोबारा पुष्टि करने का अनुरोध करेगी. यह बात मायने नहीं रखती कि कैश मेमोरी में सेव किए गए जवाब कितने पुराने हैं.
यह काफ़ी सामान्य रणनीति है, जिसमें सबसे अप-टू-डेट संसाधन ऐप्लिकेशन के लिए ज़रूरी नहीं है.
import {registerRoute} from 'workbox-routing';
import {StaleWhileRevalidate} from 'workbox-strategies';
registerRoute(
({url}) => url.pathname.startsWith('/images/avatars/'),
new StaleWhileRevalidate()
);
पहले कैश मेमोरी (कैश मेमोरी का नेटवर्क पर वापस जाना)
ऑफ़लाइन वेब ऐप्लिकेशन, कैश मेमोरी पर काफ़ी हद तक निर्भर करते हैं. हालांकि, वे एसेट के लिए जो गै़र-ज़रूरी नहीं होते. साथ ही, इन्हें धीरे-धीरे कैश मेमोरी में सेव किया जा सकता है, पहले कैश मेमोरी में सेव करें बेहतरीन विकल्प है.
अगर कैश मेमोरी में कोई जवाब दिया गया है, तो अनुरोध को इसका इस्तेमाल करके पूरा किया जाएगा कैश मेमोरी में सेव किए गए रिस्पॉन्स और नेटवर्क का बिलकुल भी इस्तेमाल नहीं किया जाएगा. अगर कैश मेमोरी में सेव किया गया कोई ऐप्लिकेशन न हो रिस्पॉन्स के तौर पर, नेटवर्क के अनुरोध और रिस्पॉन्स के ज़रिए अनुरोध को पूरा किया जाएगा को कैश मेमोरी में सेव किया जाएगा, ताकि अगला अनुरोध सीधे कैश मेमोरी से भेजा जा सके.
import {registerRoute} from 'workbox-routing';
import {CacheFirst} from 'workbox-strategies';
registerRoute(({request}) => request.destination === 'style', new CacheFirst());
Network First (नेटवर्क फ़ॉलिंग बैक टू कैश मेमोरी)
बार-बार अपडेट होने वाले अनुरोधों के लिए, नेटवर्क पहले रणनीति सबसे बढ़िया समाधान है. डिफ़ॉल्ट रूप से, यह सबसे नए वर्शन को फ़ेच करने की कोशिश करेगा का जवाब देते हैं. अगर अनुरोध सफल होता है, तो उसका जवाब दिया जाएगा को कैश मेमोरी में सेव करें. अगर नेटवर्क जवाब नहीं दे पाता है, तो कैश मेमोरी में सेव किया गया रिस्पॉन्स का इस्तेमाल किया जाएगा.
import {registerRoute} from 'workbox-routing';
import {NetworkFirst} from 'workbox-strategies';
registerRoute(
({url}) => url.pathname.startsWith('/social-timeline/'),
new NetworkFirst()
);
सिर्फ़ नेटवर्क
अगर आपको नेटवर्क से कोई खास अनुरोध पूरा करना है, तो सिर्फ़ नेटवर्क रणनीति का इस्तेमाल करना है.
import {registerRoute} from 'workbox-routing';
import {NetworkOnly} from 'workbox-strategies';
registerRoute(({url}) => url.pathname.startsWith('/admin/'), new NetworkOnly());
सिर्फ़ कैश मेमोरी
सिर्फ़ कैश मेमोरी रणनीति से यह पक्का होता है कि रिस्पॉन्स कैश से मिले हैं. ऐसा कम आम है लेकिन अगर आपके पास खुद का प्रीकैशिंग चरण है, तो यह काम का हो सकता है.
import {registerRoute} from 'workbox-routing';
import {CacheOnly} from 'workbox-strategies';
registerRoute(({url}) => url.pathname.startsWith('/app/v2/'), new CacheOnly());
रणनीतियां कॉन्फ़िगर करना
सभी रणनीतियों की मदद से, इन्हें कॉन्फ़िगर किया जा सकता है:
- रणनीति में इस्तेमाल करने के लिए कैश मेमोरी का नाम.
- रणनीति में इस्तेमाल करने के लिए, कैश मेमोरी की समयसीमा खत्म होने से जुड़ी पाबंदियां.
- ऐसे प्लगिन की कलेक्शन जिनके लाइफ़साइकल मेथड को कब कॉल किया जाएगा अनुरोध को फ़ेच और कैश मेमोरी में सेव करने की सुविधा.
रणनीति में इस्तेमाल की गई कैश मेमोरी को बदलना
कैश मेमोरी का नाम डालकर इस्तेमाल की जाने वाली रणनीति को बदला जा सकता है. यह है अगर आपको डीबग करने में मदद के लिए, अलग-अलग ऐसेट का इस्तेमाल करना है, तो यह काम का हो.
import {registerRoute} from 'workbox-routing';
import {CacheFirst} from 'workbox-strategies';
registerRoute(
({request}) => request.destination === 'image',
new CacheFirst({
cacheName: 'image-cache',
})
);
प्लगिन का इस्तेमाल करना
वर्कबॉक्स के साथ कई प्लगिन उपलब्ध हैं, जिनका इस्तेमाल इन रणनीतियों के साथ किया जा सकता है.
- workbox-background-sync
- वर्कबॉक्स-ब्रॉडकास्ट-अपडेट
- workbox-cacheable-response
- workbox-expiration
- workbox-range-requests
इनमें से किसी भी प्लग इन (या कस्टम प्लग इन) का इस्तेमाल करने के लिए, आपको बस
plugins
विकल्प में इंस्टेंस.
import {registerRoute} from 'workbox-routing';
import {CacheFirst} from 'workbox-strategies';
import {ExpirationPlugin} from 'workbox-expiration';
registerRoute(
({request}) => request.destination === 'image',
new CacheFirst({
cacheName: 'image-cache',
plugins: [
new ExpirationPlugin({
// Only cache requests for a week
maxAgeSeconds: 7 * 24 * 60 * 60,
// Only cache 10 requests.
maxEntries: 10,
}),
],
})
);
कस्टम रणनीतियां
रणनीतियों को कॉन्फ़िगर करने के अलावा, Workbox की मदद से अपनी पसंद के मुताबिक रणनीतियां भी बनाई जा सकती हैं.
ऐसा करने के लिए, workbox-strategies
से Strategy
बेस क्लास को इंपोर्ट और बढ़ाएं:
import {Strategy} from 'workbox-strategies';
class NewStrategy extends Strategy {
_handle(request, handler) {
// Define handling logic here
}
}
इस उदाहरण में, handle()
का इस्तेमाल, अनुरोध की रणनीति के तौर पर किया गया है, ताकि हैंडलिंग का कोई लॉजिक तय किया जा सके. यह लीजिए
अनुरोध करने की दो रणनीतियां हैं, जिनका इस्तेमाल किया जा सकता है:
handle()
: अनुरोध की रणनीति लागू करें औरPromise
दिखाएं, जोResponse
, काम के सभी प्लगिन कॉलबैक लागू करना.handleAll()
:handle()
की तरह है, लेकिन दोPromise
ऑब्जेक्ट दिखाता है. पहला हैhandle()
के बराबर की रिटर्न होती है और दूसरा समाधान तब होगा, जब प्रॉमिस किया गया हो कार्यनीति मेंevent.waitUntil()
में जोड़ा गया.
अनुरोध की दोनों रणनीतियां दो पैरामीटर के साथ शुरू की जाती हैं:
request
: वहRequest
जिसके लिए रणनीति जवाब देगी.handler
: मौजूदा रणनीति के लिए,StrategyHandler
इंस्टेंस अपने-आप बनता है.
नई रणनीति बनाना
यहां एक नई रणनीति का उदाहरण दिया गया है, जो NetworkOnly
के व्यवहार को फिर से लागू करती है:
class NewNetworkOnlyStrategy extends Strategy {
_handle(request, handler) {
return handler.fetch(request);
}
}
ध्यान दें कि नेटिव fetch
तरीके के बजाय, handler.fetch()
को कैसे कॉल किया जाता है. StrategyHandler
क्लास में फ़ेच और कैश मेमोरी से जुड़ी कई कार्रवाइयां मिलती हैं. इनका इस्तेमाल तब किया जा सकता है, जब handle()
या
handleAll()
का इस्तेमाल किया जा रहा है:
fetch
: किसी दिए गए अनुरोध को फ़ेच करता है. साथ ही,requestWillFetch()
,fetchDidSucceed()
, औरfetchDidFail()
प्लगिन के लाइफ़साइकल के तरीकेcacheMatch
: कैश मेमोरी से मिले अनुरोध का मिलान करता है. साथ ही,cacheKeyWillBeUsed()
औरcachedResponseWillBeUsed()
प्लगिन के लाइफ़साइकल के तरीकेcachePut
: कैश मेमोरी में अनुरोध/रिस्पॉन्स पेयर लगाता है औरcacheKeyWillBeUsed()
को शुरू करता है,cacheWillUpdate()
औरcacheDidUpdate()
प्लगिन के लाइफ़साइकलfetchAndCachePut
:fetch()
को कॉल करता है और जवाब के समय बैकग्राउंड मेंcachePut()
चलाता हैfetch()
ने जनरेट किया.hasCallback
: इनपुट के रूप में कॉलबैक को लेता है और अगर स्ट्रेटजी में कम से कम एक प्लगिन है, तो 'सही' दिखाता है दिए गए कॉलबैक से.runCallbacks
: दिए गए नाम से मेल खाने वाले सभी प्लगिन कॉलबैक चलाता है, ताकि दिए गए पैरामीटर को पास किया जा सके फ़िलहाल, प्लगिन की मौजूदा स्थिति के साथ मर्ज हो गया है.iterateCallbacks
: कॉलबैक को स्वीकार करता है और मिलते-जुलते प्लगिन के कॉलबैक को बार-बार दिखाता है, जहां हर कॉलबैक को मौजूदा हैंडलर की स्थिति के साथ रैप किया जाता है (यानी जब हर कॉलबैक को कॉल किया जाता है, आप जो भी ऑब्जेक्ट पैरामीटर पास करेंगे उसे प्लगिन की मौजूदा स्थिति के साथ मर्ज कर दिया जाएगा).waitUntil
: किया जा रहा है. आम तौर पर, यहFetchEvent
होता है.doneWaiting
: ऐसा प्रॉमिस रिटर्न करता है जिसका समाधानwaitUntil()
को दिए गए सभी वादों के बाद होता है सेटल हो गया है.destroy
: रणनीति की प्रोसेस को बंद कर देती है औरwaitUntil()
के बचे हुए वादों का तुरंत समाधान करती है.
पसंद के मुताबिक कैश नेटवर्क रेस रणनीति
नीचे दिया गया उदाहरण, cache-network-race ऑफ़लाइन कुकबुक (जो Workbox पर उपलब्ध नहीं है), लेकिन एक कदम आगे बढ़कर, हमेशा नेटवर्क अनुरोध के सफल होने के बाद कैश मेमोरी. इसे एक जटिल रणनीति का उदाहरण दिया गया है, जिसमें कई कार्रवाइयों के लिए इस्तेमाल किया जा सकता है.
import {Strategy} from 'workbox-strategies';
class CacheNetworkRace extends Strategy {
_handle(request, handler) {
const fetchAndCachePutDone = handler.fetchAndCachePut(request);
const cacheMatchDone = handler.cacheMatch(request);
return new Promise((resolve, reject) => {
fetchAndCachePutDone.then(resolve);
cacheMatchDone.then(response => response && resolve(response));
// Reject if both network and cache error or find no response.
Promise.allSettled([fetchAndCachePutDone, cacheMatchDone]).then(
results => {
const [fetchAndCachePutResult, cacheMatchResult] = results;
if (
fetchAndCachePutResult.status === 'rejected' &&
!cacheMatchResult.value
) {
reject(fetchAndCachePutResult.reason);
}
}
);
});
}
}
बेहतर इस्तेमाल के लिए
अगर आपको अपने फ़ेच इवेंट लॉजिक में रणनीतियों का इस्तेमाल करना है, तो किसी खास रणनीति के ज़रिए अनुरोध करने के लिए, रणनीति वाली क्लास का इस्तेमाल करें.
उदाहरण के लिए, दोबारा पुष्टि करने के दौरान पुरानी जानकारी वाली रणनीति का इस्तेमाल करने के लिए, फ़ॉलो किया जा रहा है:
self.addEventListener('fetch', event => {
const {request} = event;
const url = new URL(request.url);
if (url.origin === location.origin && url.pathname === '/') {
event.respondWith(new StaleWhileRevalidate().handle({event, request}));
}
});
उपलब्ध क्लास की सूची यहां देखी जा सकती है: workbox-strategies रेफ़रंस दस्तावेज़ों के बारे में जानकारी.
टाइप
CacheFirst
कैश-फ़र्स्ट को लागू करना रणनीति बनाई है.
कैश मेमोरी को प्राथमिकता देने की रणनीति, उन ऐसेट के लिए फ़ायदेमंद है जिनमें पहले बदलाव किए गए हैं,
जैसे कि /styles/example.a8f5f1.css
जैसे यूआरएल, क्योंकि वे
लंबे समय के लिए कैश मेमोरी में सेव किया जा सकता है.
अगर नेटवर्क अनुरोध पूरा नहीं होता और कैश मेमोरी का कोई मिलान नहीं होता है, तो यह
एक WorkboxError
अपवाद.
प्रॉपर्टी
-
कंस्ट्रक्टर
अमान्य
यह रणनीति का नया इंस्टेंस बनाता है और डॉक्यूमेंट किए गए सभी विकल्प सेट करता है प्रॉपर्टी का इस्तेमाल सार्वजनिक इंस्टेंस प्रॉपर्टी के तौर पर करता है.
ध्यान दें: अगर कस्टम रणनीति की क्लास, बुनियादी रणनीति की क्लास को बढ़ाती है और को इन प्रॉपर्टी से ज़्यादा की ज़रूरत नहीं है, इसे खुद तय करने की ज़रूरत नहीं है कंस्ट्रक्टर है.
constructor
फ़ंक्शन इस तरह दिखता है:(options?: StrategyOptions) => {...}
-
विकल्प
StrategyOptions ज़रूरी नहीं
-
returns
-
-
cacheName
स्ट्रिंग
-
fetchOptions
requestInit वैकल्पिक
-
matchOptions
कैश क्वेरी के विकल्प ज़रूरी नहीं
-
प्लगिन
-
_awaitComplete
अमान्य
_awaitComplete
फ़ंक्शन इस तरह दिखता है:(responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
-
responseDone
Promise<Response>
-
हैंडलर
-
CANNOT TRANSLATE
अनुरोध
-
इवेंट
ExtendableEvent
-
returns
प्रॉमिस<void>
-
-
_getResponse
अमान्य
_getResponse
फ़ंक्शन इस तरह दिखता है:(handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
-
हैंडलर
-
CANNOT TRANSLATE
अनुरोध
-
इवेंट
ExtendableEvent
-
returns
Promise<Response>
-
-
हैंडल
अमान्य
अनुरोध की रणनीति लागू करें और
Promise
की वैल्यू दिखाता है, जिसका समाधान हो जाएगा एकResponse
, जो काम के सभी प्लगिन कॉलबैक शुरू करता है.जब रणनीति इंस्टेंस, Workbox के साथ रजिस्टर किया गया हो
workbox-routing.Route
, यह तरीका अपने-आप रूट के मेल खाने पर कॉल किया जाता है.इसके अलावा, इस तरीके का इस्तेमाल स्टैंडअलोन
FetchEvent
में किया जा सकता है एक व्यक्ति ने उसेevent.respondWith()
को पास किया.handle
फ़ंक्शन इस तरह दिखता है:(options: FetchEvent | HandlerCallbackOptions) => {...}
-
विकल्प
FetchEvent | HandlerCallbackOptions
FetchEvent
या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.
-
returns
Promise<Response>
-
-
handleAll
अमान्य
workbox-strategies.Strategy~handle
के समान, लेकिन के बजायPromise
का ही जवाब दें, ताकि उसका समाधानResponse
हो जाए इसमें[response, done]
प्रॉमिस का एक गुच्छा दिखेगा, जिसमें पहले (response
)handle()
की वैल्यू के बराबर है और बाद वाली वैल्यू, ऐसा वादा जो जोड़े जाने पर हल हो जाएगा रणनीति लागू करने के दौरान,event.waitUntil()
पूरा हो गया है.done
प्रॉमिस का इंतज़ार करके, यह पक्का किया जा सकता है कि अगर कोई और काम करना है, तो कार्यनीति (आमतौर पर जवाबों को संचित करती है) सफलतापूर्वक पूरी हो जाती है.handleAll
फ़ंक्शन इस तरह दिखता है:(options: FetchEvent | HandlerCallbackOptions) => {...}
-
विकल्प
FetchEvent | HandlerCallbackOptions
FetchEvent
या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.
-
returns
[Promise<Response>, Promise<void>]
[response, हो गया] का एक टपल ऐसा वादा किया गया हो, जिसका इस्तेमाल यह तय करने के लिए किया जा सके कि जवाब कब और जब हैंडलर ने अपना सारा काम पूरा कर लिया हो.
-
CacheOnly
सिर्फ़ कैश मेमोरी में सेव को लागू करना रणनीति बनाई है.
अगर आपको किसी भी वर्कबॉक्स प्लगिन.
अगर कोई कैश मेमोरी मैच नहीं करती है, तो इससे WorkboxError
अपवाद हो जाएगा.
प्रॉपर्टी
-
कंस्ट्रक्टर
अमान्य
यह रणनीति का नया इंस्टेंस बनाता है और डॉक्यूमेंट किए गए सभी विकल्प सेट करता है प्रॉपर्टी का इस्तेमाल सार्वजनिक इंस्टेंस प्रॉपर्टी के तौर पर करता है.
ध्यान दें: अगर कस्टम रणनीति की क्लास, बुनियादी रणनीति की क्लास को बढ़ाती है और को इन प्रॉपर्टी से ज़्यादा की ज़रूरत नहीं है, इसे खुद तय करने की ज़रूरत नहीं है कंस्ट्रक्टर है.
constructor
फ़ंक्शन इस तरह दिखता है:(options?: StrategyOptions) => {...}
-
विकल्प
StrategyOptions ज़रूरी नहीं
-
returns
-
-
cacheName
स्ट्रिंग
-
fetchOptions
requestInit वैकल्पिक
-
matchOptions
कैश क्वेरी के विकल्प ज़रूरी नहीं
-
प्लगिन
-
_awaitComplete
अमान्य
_awaitComplete
फ़ंक्शन इस तरह दिखता है:(responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
-
responseDone
Promise<Response>
-
हैंडलर
-
CANNOT TRANSLATE
अनुरोध
-
इवेंट
ExtendableEvent
-
returns
प्रॉमिस<void>
-
-
_getResponse
अमान्य
_getResponse
फ़ंक्शन इस तरह दिखता है:(handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
-
हैंडलर
-
CANNOT TRANSLATE
अनुरोध
-
इवेंट
ExtendableEvent
-
returns
Promise<Response>
-
-
हैंडल
अमान्य
अनुरोध की रणनीति लागू करें और
Promise
की वैल्यू दिखाता है, जिसका समाधान हो जाएगा एकResponse
, जो काम के सभी प्लगिन कॉलबैक शुरू करता है.जब रणनीति इंस्टेंस, Workbox के साथ रजिस्टर किया गया हो
workbox-routing.Route
, यह तरीका अपने-आप रूट के मेल खाने पर कॉल किया जाता है.इसके अलावा, इस तरीके का इस्तेमाल स्टैंडअलोन
FetchEvent
में किया जा सकता है एक व्यक्ति ने उसेevent.respondWith()
को पास किया.handle
फ़ंक्शन इस तरह दिखता है:(options: FetchEvent | HandlerCallbackOptions) => {...}
-
विकल्प
FetchEvent | HandlerCallbackOptions
FetchEvent
या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.
-
returns
Promise<Response>
-
-
handleAll
अमान्य
workbox-strategies.Strategy~handle
के समान, लेकिन के बजायPromise
का ही जवाब दें, ताकि उसका समाधानResponse
हो जाए इसमें[response, done]
प्रॉमिस का एक गुच्छा दिखेगा, जिसमें पहले (response
)handle()
की वैल्यू के बराबर है और बाद वाली वैल्यू, ऐसा वादा जो जोड़े जाने पर हल हो जाएगा रणनीति लागू करने के दौरान,event.waitUntil()
पूरा हो गया है.done
प्रॉमिस का इंतज़ार करके, यह पक्का किया जा सकता है कि अगर कोई और काम करना है, तो कार्यनीति (आमतौर पर जवाबों को संचित करती है) सफलतापूर्वक पूरी हो जाती है.handleAll
फ़ंक्शन इस तरह दिखता है:(options: FetchEvent | HandlerCallbackOptions) => {...}
-
विकल्प
FetchEvent | HandlerCallbackOptions
FetchEvent
या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.
-
returns
[Promise<Response>, Promise<void>]
[response, हो गया] का एक टपल ऐसा वादा किया गया हो, जिसका इस्तेमाल यह तय करने के लिए किया जा सके कि जवाब कब और जब हैंडलर ने अपना सारा काम पूरा कर लिया हो.
-
NetworkFirst
लागू करने का तरीका नेटवर्क पहले रणनीति बनाई है.
डिफ़ॉल्ट रूप से, यह रणनीति रिस्पॉन्स को 200 स्टेटस कोड के साथ कैश मेमोरी में सेव करेगी साथ ही, ओपेक रिस्पॉन्स. ओपेक रिस्पॉन्स यानी क्रॉस-ऑरिजिन अनुरोध CORS के साथ काम करते हैं.
अगर नेटवर्क अनुरोध पूरा नहीं होता और कैश मेमोरी का कोई मिलान नहीं होता है, तो यह
एक WorkboxError
अपवाद.
प्रॉपर्टी
-
कंस्ट्रक्टर
अमान्य
constructor
फ़ंक्शन इस तरह दिखता है:(options?: NetworkFirstOptions) => {...}
-
विकल्प
NetworkFirstOptions ज़रूरी नहीं
-
returns
-
-
cacheName
स्ट्रिंग
-
fetchOptions
requestInit वैकल्पिक
-
matchOptions
कैश क्वेरी के विकल्प ज़रूरी नहीं
-
प्लगिन
-
_awaitComplete
अमान्य
_awaitComplete
फ़ंक्शन इस तरह दिखता है:(responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
-
responseDone
Promise<Response>
-
हैंडलर
-
CANNOT TRANSLATE
अनुरोध
-
इवेंट
ExtendableEvent
-
returns
प्रॉमिस<void>
-
-
_getResponse
अमान्य
_getResponse
फ़ंक्शन इस तरह दिखता है:(handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
-
हैंडलर
-
CANNOT TRANSLATE
अनुरोध
-
इवेंट
ExtendableEvent
-
returns
Promise<Response>
-
-
हैंडल
अमान्य
अनुरोध की रणनीति लागू करें और
Promise
की वैल्यू दिखाता है, जिसका समाधान हो जाएगा एकResponse
, जो काम के सभी प्लगिन कॉलबैक शुरू करता है.जब रणनीति इंस्टेंस, Workbox के साथ रजिस्टर किया गया हो
workbox-routing.Route
, यह तरीका अपने-आप रूट के मेल खाने पर कॉल किया जाता है.इसके अलावा, इस तरीके का इस्तेमाल स्टैंडअलोन
FetchEvent
में किया जा सकता है एक व्यक्ति ने उसेevent.respondWith()
को पास किया.handle
फ़ंक्शन इस तरह दिखता है:(options: FetchEvent | HandlerCallbackOptions) => {...}
-
विकल्प
FetchEvent | HandlerCallbackOptions
FetchEvent
या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.
-
returns
Promise<Response>
-
-
handleAll
अमान्य
workbox-strategies.Strategy~handle
के समान, लेकिन के बजायPromise
का ही जवाब दें, ताकि उसका समाधानResponse
हो जाए इसमें[response, done]
प्रॉमिस का एक गुच्छा दिखेगा, जिसमें पहले (response
)handle()
की वैल्यू के बराबर है और बाद वाली वैल्यू, ऐसा वादा जो जोड़े जाने पर हल हो जाएगा रणनीति लागू करने के दौरान,event.waitUntil()
पूरा हो गया है.done
प्रॉमिस का इंतज़ार करके, यह पक्का किया जा सकता है कि अगर कोई और काम करना है, तो कार्यनीति (आमतौर पर जवाबों को संचित करती है) सफलतापूर्वक पूरी हो जाती है.handleAll
फ़ंक्शन इस तरह दिखता है:(options: FetchEvent | HandlerCallbackOptions) => {...}
-
विकल्प
FetchEvent | HandlerCallbackOptions
FetchEvent
या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.
-
returns
[Promise<Response>, Promise<void>]
[response, हो गया] का एक टपल ऐसा वादा किया गया हो, जिसका इस्तेमाल यह तय करने के लिए किया जा सके कि जवाब कब और जब हैंडलर ने अपना सारा काम पूरा कर लिया हो.
-
NetworkFirstOptions
प्रॉपर्टी
-
cacheName
स्ट्रिंग ज़रूरी नहीं
-
fetchOptions
requestInit वैकल्पिक
-
matchOptions
कैश क्वेरी के विकल्प ज़रूरी नहीं
-
networkTimeoutSeconds
नंबर वैकल्पिक
-
प्लगिन
WorkboxPlugin[] ज़रूरी नहीं
NetworkOnly
लागू करने का तरीका सिर्फ़ नेटवर्क के लिए रणनीति बनाई है.
अगर आपको किसी भी वर्कबॉक्स प्लगिन.
अगर नेटवर्क का अनुरोध पूरा नहीं होता है, तो इससे WorkboxError
अपवाद दिखेगा.
प्रॉपर्टी
-
कंस्ट्रक्टर
अमान्य
constructor
फ़ंक्शन इस तरह दिखता है:(options?: NetworkOnlyOptions) => {...}
-
विकल्प
NetworkOnlyOptions ज़रूरी नहीं
-
returns
-
-
cacheName
स्ट्रिंग
-
fetchOptions
requestInit वैकल्पिक
-
matchOptions
कैश क्वेरी के विकल्प ज़रूरी नहीं
-
प्लगिन
-
_awaitComplete
अमान्य
_awaitComplete
फ़ंक्शन इस तरह दिखता है:(responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
-
responseDone
Promise<Response>
-
हैंडलर
-
CANNOT TRANSLATE
अनुरोध
-
इवेंट
ExtendableEvent
-
returns
प्रॉमिस<void>
-
-
_getResponse
अमान्य
_getResponse
फ़ंक्शन इस तरह दिखता है:(handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
-
हैंडलर
-
CANNOT TRANSLATE
अनुरोध
-
इवेंट
ExtendableEvent
-
returns
Promise<Response>
-
-
हैंडल
अमान्य
अनुरोध की रणनीति लागू करें और
Promise
की वैल्यू दिखाता है, जिसका समाधान हो जाएगा एकResponse
, जो काम के सभी प्लगिन कॉलबैक शुरू करता है.जब रणनीति इंस्टेंस, Workbox के साथ रजिस्टर किया गया हो
workbox-routing.Route
, यह तरीका अपने-आप रूट के मेल खाने पर कॉल किया जाता है.इसके अलावा, इस तरीके का इस्तेमाल स्टैंडअलोन
FetchEvent
में किया जा सकता है एक व्यक्ति ने उसेevent.respondWith()
को पास किया.handle
फ़ंक्शन इस तरह दिखता है:(options: FetchEvent | HandlerCallbackOptions) => {...}
-
विकल्प
FetchEvent | HandlerCallbackOptions
FetchEvent
या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.
-
returns
Promise<Response>
-
-
handleAll
अमान्य
workbox-strategies.Strategy~handle
के समान, लेकिन के बजायPromise
का ही जवाब दें, ताकि उसका समाधानResponse
हो जाए इसमें[response, done]
प्रॉमिस का एक गुच्छा दिखेगा, जिसमें पहले (response
)handle()
की वैल्यू के बराबर है और बाद वाली वैल्यू, ऐसा वादा जो जोड़े जाने पर हल हो जाएगा रणनीति लागू करने के दौरान,event.waitUntil()
पूरा हो गया है.done
प्रॉमिस का इंतज़ार करके, यह पक्का किया जा सकता है कि अगर कोई और काम करना है, तो कार्यनीति (आमतौर पर जवाबों को संचित करती है) सफलतापूर्वक पूरी हो जाती है.handleAll
फ़ंक्शन इस तरह दिखता है:(options: FetchEvent | HandlerCallbackOptions) => {...}
-
विकल्प
FetchEvent | HandlerCallbackOptions
FetchEvent
या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.
-
returns
[Promise<Response>, Promise<void>]
[response, हो गया] का एक टपल ऐसा वादा किया गया हो, जिसका इस्तेमाल यह तय करने के लिए किया जा सके कि जवाब कब और जब हैंडलर ने अपना सारा काम पूरा कर लिया हो.
-
NetworkOnlyOptions
प्रॉपर्टी
-
fetchOptions
requestInit वैकल्पिक
-
networkTimeoutSeconds
नंबर वैकल्पिक
-
प्लगिन
WorkboxPlugin[] ज़रूरी नहीं
StaleWhileRevalidate
लागू करने का तरीका फिर से पुष्टि करने के दौरान पुरानी जानकारी रणनीति बनाई है.
कैश मेमोरी और नेटवर्क, दोनों से रिसॉर्स के लिए अनुरोध किया जाता है. उपलब्ध होने पर, रणनीति, कैश मेमोरी में सेव किए गए वर्शन के साथ जवाब देगी. नेटवर्क से जवाब मिलने का इंतज़ार करें. कैश मेमोरी को नेटवर्क रिस्पॉन्स के हिसाब से अपडेट किया जाता है उसे हर अनुरोध के साथ एक्सपोर्ट किया जा सकता है.
डिफ़ॉल्ट रूप से, यह रणनीति रिस्पॉन्स को 200 स्टेटस कोड के साथ कैश मेमोरी में सेव करेगी साथ ही, ओपेक रिस्पॉन्स. ओपेक रिस्पॉन्स, क्रॉस-ऑरिजिन अनुरोध होते हैं, जिनमें रिस्पॉन्स नहीं होता CORS के साथ काम करते हैं.
अगर नेटवर्क अनुरोध पूरा नहीं होता और कैश मेमोरी का कोई मिलान नहीं होता है, तो यह
एक WorkboxError
अपवाद.
प्रॉपर्टी
-
कंस्ट्रक्टर
अमान्य
constructor
फ़ंक्शन इस तरह दिखता है:(options?: StrategyOptions) => {...}
-
विकल्प
StrategyOptions ज़रूरी नहीं
-
returns
-
-
cacheName
स्ट्रिंग
-
fetchOptions
requestInit वैकल्पिक
-
matchOptions
कैश क्वेरी के विकल्प ज़रूरी नहीं
-
प्लगिन
-
_awaitComplete
अमान्य
_awaitComplete
फ़ंक्शन इस तरह दिखता है:(responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
-
responseDone
Promise<Response>
-
हैंडलर
-
CANNOT TRANSLATE
अनुरोध
-
इवेंट
ExtendableEvent
-
returns
प्रॉमिस<void>
-
-
_getResponse
अमान्य
_getResponse
फ़ंक्शन इस तरह दिखता है:(handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
-
हैंडलर
-
CANNOT TRANSLATE
अनुरोध
-
इवेंट
ExtendableEvent
-
returns
Promise<Response>
-
-
हैंडल
अमान्य
अनुरोध की रणनीति लागू करें और
Promise
की वैल्यू दिखाता है, जिसका समाधान हो जाएगा एकResponse
, जो काम के सभी प्लगिन कॉलबैक शुरू करता है.जब रणनीति इंस्टेंस, Workbox के साथ रजिस्टर किया गया हो
workbox-routing.Route
, यह तरीका अपने-आप रूट के मेल खाने पर कॉल किया जाता है.इसके अलावा, इस तरीके का इस्तेमाल स्टैंडअलोन
FetchEvent
में किया जा सकता है एक व्यक्ति ने उसेevent.respondWith()
को पास किया.handle
फ़ंक्शन इस तरह दिखता है:(options: FetchEvent | HandlerCallbackOptions) => {...}
-
विकल्प
FetchEvent | HandlerCallbackOptions
FetchEvent
या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.
-
returns
Promise<Response>
-
-
handleAll
अमान्य
workbox-strategies.Strategy~handle
के समान, लेकिन के बजायPromise
का ही जवाब दें, ताकि उसका समाधानResponse
हो जाए इसमें[response, done]
प्रॉमिस का एक गुच्छा दिखेगा, जिसमें पहले (response
)handle()
की वैल्यू के बराबर है और बाद वाली वैल्यू, ऐसा वादा जो जोड़े जाने पर हल हो जाएगा रणनीति लागू करने के दौरान,event.waitUntil()
पूरा हो गया है.done
प्रॉमिस का इंतज़ार करके, यह पक्का किया जा सकता है कि अगर कोई और काम करना है, तो कार्यनीति (आमतौर पर जवाबों को संचित करती है) सफलतापूर्वक पूरी हो जाती है.handleAll
फ़ंक्शन इस तरह दिखता है:(options: FetchEvent | HandlerCallbackOptions) => {...}
-
विकल्प
FetchEvent | HandlerCallbackOptions
FetchEvent
या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.
-
returns
[Promise<Response>, Promise<void>]
[response, हो गया] का एक टपल ऐसा वादा किया गया हो, जिसका इस्तेमाल यह तय करने के लिए किया जा सके कि जवाब कब और जब हैंडलर ने अपना सारा काम पूरा कर लिया हो.
-
Strategy
एक ऐब्सट्रैक्ट बेस क्लास, जिससे रणनीति वाली अन्य सभी क्लास को भी शामिल करना चाहिए:
प्रॉपर्टी
-
कंस्ट्रक्टर
अमान्य
यह रणनीति का नया इंस्टेंस बनाता है और डॉक्यूमेंट किए गए सभी विकल्प सेट करता है प्रॉपर्टी का इस्तेमाल सार्वजनिक इंस्टेंस प्रॉपर्टी के तौर पर करता है.
ध्यान दें: अगर कस्टम रणनीति की क्लास, बुनियादी रणनीति की क्लास को बढ़ाती है और को इन प्रॉपर्टी से ज़्यादा की ज़रूरत नहीं है, इसे खुद तय करने की ज़रूरत नहीं है कंस्ट्रक्टर है.
constructor
फ़ंक्शन इस तरह दिखता है:(options?: StrategyOptions) => {...}
-
विकल्प
StrategyOptions ज़रूरी नहीं
-
returns
-
-
cacheName
स्ट्रिंग
-
fetchOptions
requestInit वैकल्पिक
-
matchOptions
कैश क्वेरी के विकल्प ज़रूरी नहीं
-
प्लगिन
-
_awaitComplete
अमान्य
_awaitComplete
फ़ंक्शन इस तरह दिखता है:(responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
-
responseDone
Promise<Response>
-
हैंडलर
-
CANNOT TRANSLATE
अनुरोध
-
इवेंट
ExtendableEvent
-
returns
प्रॉमिस<void>
-
-
_getResponse
अमान्य
_getResponse
फ़ंक्शन इस तरह दिखता है:(handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
-
हैंडलर
-
CANNOT TRANSLATE
अनुरोध
-
इवेंट
ExtendableEvent
-
returns
Promise<Response>
-
-
_handle
अमान्य
_handle
फ़ंक्शन इस तरह दिखता है:(request: Request, handler: StrategyHandler) => {...}
-
CANNOT TRANSLATE
अनुरोध
-
हैंडलर
-
returns
Promise<Response>
-
-
हैंडल
अमान्य
अनुरोध की रणनीति लागू करें और
Promise
की वैल्यू दिखाता है, जिसका समाधान हो जाएगा एकResponse
, जो काम के सभी प्लगिन कॉलबैक शुरू करता है.जब रणनीति इंस्टेंस, Workbox के साथ रजिस्टर किया गया हो
workbox-routing.Route
, यह तरीका अपने-आप रूट के मेल खाने पर कॉल किया जाता है.इसके अलावा, इस तरीके का इस्तेमाल स्टैंडअलोन
FetchEvent
में किया जा सकता है एक व्यक्ति ने उसेevent.respondWith()
को पास किया.handle
फ़ंक्शन इस तरह दिखता है:(options: FetchEvent | HandlerCallbackOptions) => {...}
-
विकल्प
FetchEvent | HandlerCallbackOptions
FetchEvent
या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.
-
returns
Promise<Response>
-
-
handleAll
अमान्य
workbox-strategies.Strategy~handle
के समान, लेकिन के बजायPromise
का ही जवाब दें, ताकि उसका समाधानResponse
हो जाए इसमें[response, done]
प्रॉमिस का एक गुच्छा दिखेगा, जिसमें पहले (response
)handle()
की वैल्यू के बराबर है और बाद वाली वैल्यू, ऐसा वादा जो जोड़े जाने पर हल हो जाएगा रणनीति लागू करने के दौरान,event.waitUntil()
पूरा हो गया है.done
प्रॉमिस का इंतज़ार करके, यह पक्का किया जा सकता है कि अगर कोई और काम करना है, तो कार्यनीति (आमतौर पर जवाबों को संचित करती है) सफलतापूर्वक पूरी हो जाती है.handleAll
फ़ंक्शन इस तरह दिखता है:(options: FetchEvent | HandlerCallbackOptions) => {...}
-
विकल्प
FetchEvent | HandlerCallbackOptions
FetchEvent
या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.
-
returns
[Promise<Response>, Promise<void>]
[response, हो गया] का एक टपल ऐसा वादा किया गया हो, जिसका इस्तेमाल यह तय करने के लिए किया जा सके कि जवाब कब और जब हैंडलर ने अपना सारा काम पूरा कर लिया हो.
-
StrategyHandler
हर बार स्ट्रेटजी इंस्टेंस कॉल करने पर, क्लास बनाई जाती है
workbox-strategies.Strategy~handle
या
workbox-strategies.Strategy~handleAll
, जिसमें सभी फ़ेच शामिल हैं और
प्लगिन कॉलबैक के आस-पास की जाने वाली कैश मेमोरी और स्ट्रेटजी बनाए जाने का समय ट्रैक करता है
"हो गया" (यानी कि जोड़े गए सभी event.waitUntil()
वादों का समाधान हो गया है).
प्रॉपर्टी
-
कंस्ट्रक्टर
अमान्य
पास की गई रणनीति और इवेंट से जुड़ा एक नया इंस्टेंस बनाता है जो अनुरोध को हैंडल कर रहा है.
कंस्ट्रक्टर उस स्थिति को भी शुरू करता है, जो हर इस अनुरोध को हैंडल करने वाले प्लगिन.
constructor
फ़ंक्शन इस तरह दिखता है:(strategy: Strategy, options: HandlerCallbackOptions) => {...}
-
रणनीति वाले गेम
-
विकल्प
-
returns
-
-
इवेंट
ExtendableEvent
-
पैरामीटर
कोई भी वैकल्पिक
-
CANNOT TRANSLATE
अनुरोध
-
url
यूआरएल वैकल्पिक
-
cacheMatch
अमान्य
कैश मेमोरी से मिले अनुरोध से मेल खाता है. साथ ही, लागू होने वाले किसी प्लगिन को शुरू करता है कॉलबैक मेथड) का इस्तेमाल करके
cacheName
,matchOptions
, औरplugins
का इस्तेमाल करता है तय करें.इस तरीके का इस्तेमाल करने पर, प्लगिन के लाइफ़साइकल के इन तरीकों को शुरू किया जाता है:
- cacheKeyWillByUsed()
- cachedResponseWillByUsed()
cacheMatch
फ़ंक्शन इस तरह दिखता है:(key: RequestInfo) => {...}
-
बटन
RequestInfo
कैश मेमोरी कुंजी के तौर पर इस्तेमाल करने के लिए अनुरोध या यूआरएल.
-
returns
Promise<Response>
अगर मिलता है, तो इससे मिलता-जुलता कोई जवाब मिलता है.
-
cachePut
अमान्य
कैश मेमोरी में एक अनुरोध/जवाब की जोड़ी रखता है (और लागू की गई किसी सुविधा को शुरू करता है प्लगिन कॉलबैक विधियां) पर परिभाषित
cacheName
औरplugins
का उपयोग करके रणनीति ऑब्जेक्ट.इस तरीके का इस्तेमाल करने पर, प्लगिन के लाइफ़साइकल के इन तरीकों को शुरू किया जाता है:
- cacheKeyWillByUsed()
- cacheWillUpdate()
- cacheDidUpdate()
cachePut
फ़ंक्शन इस तरह दिखता है:(key: RequestInfo, response: Response) => {...}
-
बटन
RequestInfo
कैश कुंजी के तौर पर इस्तेमाल करने के लिए अनुरोध या यूआरएल.
-
जवाब
जवाब
कैश मेमोरी में सेव किया गया रिस्पॉन्स.
-
returns
Promise<boolean>
अगर कैश मेमोरी में सेव होने वाले अपडेट की वजह से रिस्पॉन्स मिला हो, तो
false
कैश मेमोरी में सेव नहीं किया जाना चाहिए. अगर ऐसा नहीं है, तोtrue
.
-
बंद करें
अमान्य
रणनीति की मदद से चलना बंद हो जाता है और अधूरी जानकारी का तुरंत समाधान हो जाता है
waitUntil()
ने प्रॉमिस किया.destroy
फ़ंक्शन इस तरह दिखता है:() => {...}
-
doneWaiting
अमान्य
ऐसा प्रॉमिस, जो नीति के मुताबिक किए गए सभी प्रॉमिस पास होने के बाद रिज़ॉल्व हो जाता है
workbox-strategies.StrategyHandler~waitUntil
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है सेटल हो गए हैं.ध्यान दें:
doneWaiting()
सेटल होने के बाद किए गए सभी काम मैन्युअल तरीके से किए जाने चाहिए इवेंट केwaitUntil()
तरीके में पास किया जाता है (इस हैंडलर कीwaitUntil()
मेथड है, नहीं तो सर्विस वर्कर थ्रेड की वजह से मेरी हत्या हो जाएगी में आपका काम पूरा हो जाएगा.doneWaiting
फ़ंक्शन इस तरह दिखता है:() => {...}
-
returns
प्रॉमिस<void>
-
-
लाएं
अमान्य
यह किसी दिए गए अनुरोध को फ़ेच करता है (और लागू होने वाले किसी प्लगिन कॉलबैक को शुरू करता है तरीके का इस्तेमाल करके
fetchOptions
(बिना नेविगेशन वाले अनुरोधों के लिए) औरStrategy
ऑब्जेक्ट परplugins
तय किया गया.इस तरीके का इस्तेमाल करने पर, प्लगिन के लाइफ़साइकल के इन तरीकों को शुरू किया जाता है:
requestWillFetch()
fetchDidSucceed()
fetchDidFail()
fetch
फ़ंक्शन इस तरह दिखता है:(input: RequestInfo) => {...}
-
इनपुट
RequestInfo
यूआरएल या फ़ेच करने का अनुरोध.
-
returns
Promise<Response>
-
fetchAndCachePut
अमान्य
this.fetch()
कॉल करने पर (बैकग्राउंड में)this.cachePut()
चालू रहेगाthis.fetch()
ने जवाब जनरेट किया.this.cachePut()
पर कॉल करने पर,this.waitUntil()
अपने-आप शुरू हो जाता है, इसलिए आपको इवेंट के लिएwaitUntil()
को मैन्युअल रूप से कॉल नहीं करना पड़ेगा.fetchAndCachePut
फ़ंक्शन इस तरह दिखता है:(input: RequestInfo) => {...}
-
इनपुट
RequestInfo
वह अनुरोध या यूआरएल जिसे फ़ेच और कैश मेमोरी में सेव किया जाना है.
-
returns
Promise<Response>
-
-
getCacheKey
अमान्य
cacheKeyWillBeUsed
कॉलबैक के लिए प्लगिन की सूची की जांच करता है और क्रम में मिलने वाले इनमें से किसी भी कॉलबैक को लागू करता है. आखिरीRequest
आखिरी प्लग इन से मिले ऑब्जेक्ट को कैश मेमोरी के लिए कैश कुंजी माना जाता है पढ़ता और/या लिखता है. अगर किसी भीcacheKeyWillBeUsed
प्लगिन कॉलबैक में ऐसा नहीं है पंजीकृत किया जा चुका है, पास किया गया अनुरोध बिना किसी बदलाव के वापस लौटा दिया गया हैgetCacheKey
फ़ंक्शन इस तरह दिखता है:(request: Request, mode: "read"
| "write"
) => {...}-
CANNOT TRANSLATE
अनुरोध
-
मोड
"पढ़ें"
| "लिखें"
-
returns
Promise<Request>
-
-
hasCallback
अमान्य
अगर स्ट्रेटजी में दिए गए प्लगिन के साथ, कम से कम एक प्लगिन है, तो 'सही' दिखाता है कॉलबैक.
hasCallback
फ़ंक्शन इस तरह दिखता है:(name: C) => {...}
-
नाम
C
उस कॉलबैक का नाम जिसे जांचना है.
-
returns
बूलियन
-
-
iterateCallbacks
अमान्य
कॉलबैक स्वीकार करता है और मेल खाने वाले प्लगिन कॉलबैक को बार-बार दिखाता है, जहां हर कॉलबैक को मौजूदा हैंडलर की स्थिति के साथ रैप किया जाता है (यानी जब हर कॉलबैक को कॉल किया जाता है, तो पास किया जाने वाला कोई भी ऑब्जेक्ट पैरामीटर, प्लगिन की मौजूदा स्थिति के साथ मर्ज की जाएगी).
iterateCallbacks
फ़ंक्शन इस तरह दिखता है:(name: C) => {...}
-
नाम
C
जिस कॉलबैक को चलाना है उसका नाम
-
returns
जनरेटर<NonNullable<indexedAccess>anyunknown>
-
-
runCallbacks
अमान्य
दिए गए नाम से मेल खाने वाले सभी प्लगिन कॉलबैक चलाता है, ताकि यूआरएल को पास किया जा सके दिया गया पैरामीटर ऑब्जेक्ट (मौजूदा प्लगिन स्थिति से मर्ज किया गया) तर्क है.
ध्यान दें: यह तरीका सभी प्लगिन का इस्तेमाल करता है, इसलिए यह मामलों में सही नहीं है जहां कॉल करने से पहले कॉलबैक की रिटर्न वैल्यू लागू की जानी चाहिए अगला कॉलबैक. यहां जाएं:
workbox-strategies.StrategyHandler#iterateCallbacks
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है पढ़ें.runCallbacks
फ़ंक्शन इस तरह दिखता है:(name: C, param: Omit<indexedAccess"state"
>) => {...}-
नाम
C
हर प्लगिन में चलने वाले कॉलबैक का नाम.
-
पैरामीटर
<indexedAccess"state"
> हटाएंपहले (और सिर्फ़) पैरामीटर के तौर पर पास किया जाने वाला ऑब्जेक्ट का इस्तेमाल करें. इस ऑब्जेक्ट को इसके साथ मर्ज कर दिया जाएगा कॉलबैक लागू करने से पहले, प्लगिन की मौजूदा स्थिति के बारे में बताएं.
-
returns
प्रॉमिस<void>
-
-
waitUntil
अमान्य
इसमें एक प्रॉमिस जोड़ता है [लाइफ़टाइम प्रॉमिस बढ़ा दें]
https://w3c.github.io/ServiceWorker/#extendableevent-extend-lifetime-promises
मैनेज किए जा रहे अनुरोध से जुड़े इवेंट की हो. आम तौर पर,FetchEvent
).नोट: आप इंतज़ार कर सकते हैं
workbox-strategies.StrategyHandler~doneWaiting
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ताकि जोड़े गए सभी वादों के पूरा होने का समय पता चल सके.waitUntil
फ़ंक्शन इस तरह दिखता है:(promise: Promise<T>) => {...}
-
प्रॉमिस
वादा<T>
लंबे समय तक चलने वाले प्रॉमिस में जोड़ने का वादा अनुरोध को ट्रिगर करने वाले इवेंट का हिस्सा हैं.
-
returns
वादा<T>
-
StrategyOptions
प्रॉपर्टी
-
cacheName
स्ट्रिंग ज़रूरी नहीं
-
fetchOptions
requestInit वैकल्पिक
-
matchOptions
कैश क्वेरी के विकल्प ज़रूरी नहीं
-
प्लगिन
WorkboxPlugin[] ज़रूरी नहीं