वर्कबॉक्स बनाने की रणनीतियां

जब सर्विस वर्कर का पहली बार परिचय हुआ, तो कैश मेमोरी में डेटा सेव करने की सामान्य रणनीतियों का एक सेट सामने आया. कैश मेमोरी में सेव करने की रणनीति, एक पैटर्न है जो यह तय करता है कि सर्विस वर्कर कैसे फ़ेच इवेंट मिलने के बाद, एक रिस्पॉन्स जनरेट होता है.

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',
  })
);

प्लगिन का इस्तेमाल करना

वर्कबॉक्स के साथ कई प्लगिन उपलब्ध हैं, जिनका इस्तेमाल इन रणनीतियों के साथ किया जा सकता है.

इनमें से किसी भी प्लग इन (या कस्टम प्लग इन) का इस्तेमाल करने के लिए, आपको बस 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) => {...}

  • cacheName

    स्ट्रिंग

  • fetchOptions

    requestInit वैकल्पिक

  • matchOptions

    कैश क्वेरी के विकल्प ज़रूरी नहीं

  • प्लगिन
  • _awaitComplete

    अमान्य

    _awaitComplete फ़ंक्शन इस तरह दिखता है:

    (responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}

    • responseDone

      Promise&lt;Response&gt;

    • हैंडलर
    • CANNOT TRANSLATE

      अनुरोध

    • इवेंट

      ExtendableEvent

    • returns

      प्रॉमिस<void>

  • _getResponse

    अमान्य

    _getResponse फ़ंक्शन इस तरह दिखता है:

    (handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}

    • हैंडलर
    • CANNOT TRANSLATE

      अनुरोध

    • इवेंट

      ExtendableEvent

    • returns

      Promise&lt;Response&gt;

  • हैंडल

    अमान्य

    अनुरोध की रणनीति लागू करें और Promise की वैल्यू दिखाता है, जिसका समाधान हो जाएगा एक Response, जो काम के सभी प्लगिन कॉलबैक शुरू करता है.

    जब रणनीति इंस्टेंस, Workbox के साथ रजिस्टर किया गया हो workbox-routing.Route, यह तरीका अपने-आप रूट के मेल खाने पर कॉल किया जाता है.

    इसके अलावा, इस तरीके का इस्तेमाल स्टैंडअलोन FetchEvent में किया जा सकता है एक व्यक्ति ने उसे event.respondWith() को पास किया.

    handle फ़ंक्शन इस तरह दिखता है:

    (options: FetchEvent | HandlerCallbackOptions) => {...}

    • विकल्प

      FetchEvent या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.

    • returns

      Promise&lt;Response&gt;

  • handleAll

    अमान्य

    workbox-strategies.Strategy~handle के समान, लेकिन के बजाय Promise का ही जवाब दें, ताकि उसका समाधान Response हो जाए इसमें [response, done] प्रॉमिस का एक गुच्छा दिखेगा, जिसमें पहले (response) handle() की वैल्यू के बराबर है और बाद वाली वैल्यू, ऐसा वादा जो जोड़े जाने पर हल हो जाएगा रणनीति लागू करने के दौरान, event.waitUntil() पूरा हो गया है.

    done प्रॉमिस का इंतज़ार करके, यह पक्का किया जा सकता है कि अगर कोई और काम करना है, तो कार्यनीति (आमतौर पर जवाबों को संचित करती है) सफलतापूर्वक पूरी हो जाती है.

    handleAll फ़ंक्शन इस तरह दिखता है:

    (options: FetchEvent | HandlerCallbackOptions) => {...}

    • विकल्प

      FetchEvent या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.

    • returns

      [Promise<Response>, Promise<void>]

      [response, हो गया] का एक टपल ऐसा वादा किया गया हो, जिसका इस्तेमाल यह तय करने के लिए किया जा सके कि जवाब कब और जब हैंडलर ने अपना सारा काम पूरा कर लिया हो.

CacheOnly

सिर्फ़ कैश मेमोरी में सेव को लागू करना रणनीति बनाई है.

अगर आपको किसी भी वर्कबॉक्स प्लगिन.

अगर कोई कैश मेमोरी मैच नहीं करती है, तो इससे WorkboxError अपवाद हो जाएगा.

प्रॉपर्टी

  • कंस्ट्रक्टर

    अमान्य

    यह रणनीति का नया इंस्टेंस बनाता है और डॉक्यूमेंट किए गए सभी विकल्प सेट करता है प्रॉपर्टी का इस्तेमाल सार्वजनिक इंस्टेंस प्रॉपर्टी के तौर पर करता है.

    ध्यान दें: अगर कस्टम रणनीति की क्लास, बुनियादी रणनीति की क्लास को बढ़ाती है और को इन प्रॉपर्टी से ज़्यादा की ज़रूरत नहीं है, इसे खुद तय करने की ज़रूरत नहीं है कंस्ट्रक्टर है.

    constructor फ़ंक्शन इस तरह दिखता है:

    (options?: StrategyOptions) => {...}

  • cacheName

    स्ट्रिंग

  • fetchOptions

    requestInit वैकल्पिक

  • matchOptions

    कैश क्वेरी के विकल्प ज़रूरी नहीं

  • प्लगिन
  • _awaitComplete

    अमान्य

    _awaitComplete फ़ंक्शन इस तरह दिखता है:

    (responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}

    • responseDone

      Promise&lt;Response&gt;

    • हैंडलर
    • CANNOT TRANSLATE

      अनुरोध

    • इवेंट

      ExtendableEvent

    • returns

      प्रॉमिस<void>

  • _getResponse

    अमान्य

    _getResponse फ़ंक्शन इस तरह दिखता है:

    (handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}

    • हैंडलर
    • CANNOT TRANSLATE

      अनुरोध

    • इवेंट

      ExtendableEvent

    • returns

      Promise&lt;Response&gt;

  • हैंडल

    अमान्य

    अनुरोध की रणनीति लागू करें और Promise की वैल्यू दिखाता है, जिसका समाधान हो जाएगा एक Response, जो काम के सभी प्लगिन कॉलबैक शुरू करता है.

    जब रणनीति इंस्टेंस, Workbox के साथ रजिस्टर किया गया हो workbox-routing.Route, यह तरीका अपने-आप रूट के मेल खाने पर कॉल किया जाता है.

    इसके अलावा, इस तरीके का इस्तेमाल स्टैंडअलोन FetchEvent में किया जा सकता है एक व्यक्ति ने उसे event.respondWith() को पास किया.

    handle फ़ंक्शन इस तरह दिखता है:

    (options: FetchEvent | HandlerCallbackOptions) => {...}

    • विकल्प

      FetchEvent या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.

    • returns

      Promise&lt;Response&gt;

  • handleAll

    अमान्य

    workbox-strategies.Strategy~handle के समान, लेकिन के बजाय Promise का ही जवाब दें, ताकि उसका समाधान Response हो जाए इसमें [response, done] प्रॉमिस का एक गुच्छा दिखेगा, जिसमें पहले (response) handle() की वैल्यू के बराबर है और बाद वाली वैल्यू, ऐसा वादा जो जोड़े जाने पर हल हो जाएगा रणनीति लागू करने के दौरान, event.waitUntil() पूरा हो गया है.

    done प्रॉमिस का इंतज़ार करके, यह पक्का किया जा सकता है कि अगर कोई और काम करना है, तो कार्यनीति (आमतौर पर जवाबों को संचित करती है) सफलतापूर्वक पूरी हो जाती है.

    handleAll फ़ंक्शन इस तरह दिखता है:

    (options: FetchEvent | HandlerCallbackOptions) => {...}

    • विकल्प

      FetchEvent या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.

    • returns

      [Promise<Response>, Promise<void>]

      [response, हो गया] का एक टपल ऐसा वादा किया गया हो, जिसका इस्तेमाल यह तय करने के लिए किया जा सके कि जवाब कब और जब हैंडलर ने अपना सारा काम पूरा कर लिया हो.

NetworkFirst

लागू करने का तरीका नेटवर्क पहले रणनीति बनाई है.

डिफ़ॉल्ट रूप से, यह रणनीति रिस्पॉन्स को 200 स्टेटस कोड के साथ कैश मेमोरी में सेव करेगी साथ ही, ओपेक रिस्पॉन्स. ओपेक रिस्पॉन्स यानी क्रॉस-ऑरिजिन अनुरोध CORS के साथ काम करते हैं.

अगर नेटवर्क अनुरोध पूरा नहीं होता और कैश मेमोरी का कोई मिलान नहीं होता है, तो यह एक WorkboxError अपवाद.

प्रॉपर्टी

  • कंस्ट्रक्टर

    अमान्य

    constructor फ़ंक्शन इस तरह दिखता है:

    (options?: NetworkFirstOptions) => {...}

  • cacheName

    स्ट्रिंग

  • fetchOptions

    requestInit वैकल्पिक

  • matchOptions

    कैश क्वेरी के विकल्प ज़रूरी नहीं

  • प्लगिन
  • _awaitComplete

    अमान्य

    _awaitComplete फ़ंक्शन इस तरह दिखता है:

    (responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}

    • responseDone

      Promise&lt;Response&gt;

    • हैंडलर
    • CANNOT TRANSLATE

      अनुरोध

    • इवेंट

      ExtendableEvent

    • returns

      प्रॉमिस<void>

  • _getResponse

    अमान्य

    _getResponse फ़ंक्शन इस तरह दिखता है:

    (handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}

    • हैंडलर
    • CANNOT TRANSLATE

      अनुरोध

    • इवेंट

      ExtendableEvent

    • returns

      Promise&lt;Response&gt;

  • हैंडल

    अमान्य

    अनुरोध की रणनीति लागू करें और Promise की वैल्यू दिखाता है, जिसका समाधान हो जाएगा एक Response, जो काम के सभी प्लगिन कॉलबैक शुरू करता है.

    जब रणनीति इंस्टेंस, Workbox के साथ रजिस्टर किया गया हो workbox-routing.Route, यह तरीका अपने-आप रूट के मेल खाने पर कॉल किया जाता है.

    इसके अलावा, इस तरीके का इस्तेमाल स्टैंडअलोन FetchEvent में किया जा सकता है एक व्यक्ति ने उसे event.respondWith() को पास किया.

    handle फ़ंक्शन इस तरह दिखता है:

    (options: FetchEvent | HandlerCallbackOptions) => {...}

    • विकल्प

      FetchEvent या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.

    • returns

      Promise&lt;Response&gt;

  • handleAll

    अमान्य

    workbox-strategies.Strategy~handle के समान, लेकिन के बजाय Promise का ही जवाब दें, ताकि उसका समाधान Response हो जाए इसमें [response, done] प्रॉमिस का एक गुच्छा दिखेगा, जिसमें पहले (response) handle() की वैल्यू के बराबर है और बाद वाली वैल्यू, ऐसा वादा जो जोड़े जाने पर हल हो जाएगा रणनीति लागू करने के दौरान, event.waitUntil() पूरा हो गया है.

    done प्रॉमिस का इंतज़ार करके, यह पक्का किया जा सकता है कि अगर कोई और काम करना है, तो कार्यनीति (आमतौर पर जवाबों को संचित करती है) सफलतापूर्वक पूरी हो जाती है.

    handleAll फ़ंक्शन इस तरह दिखता है:

    (options: FetchEvent | HandlerCallbackOptions) => {...}

    • विकल्प

      FetchEvent या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.

    • returns

      [Promise<Response>, Promise<void>]

      [response, हो गया] का एक टपल ऐसा वादा किया गया हो, जिसका इस्तेमाल यह तय करने के लिए किया जा सके कि जवाब कब और जब हैंडलर ने अपना सारा काम पूरा कर लिया हो.

NetworkFirstOptions

प्रॉपर्टी

  • cacheName

    स्ट्रिंग ज़रूरी नहीं

  • fetchOptions

    requestInit वैकल्पिक

  • matchOptions

    कैश क्वेरी के विकल्प ज़रूरी नहीं

  • networkTimeoutSeconds

    नंबर वैकल्पिक

  • प्लगिन

    WorkboxPlugin[] ज़रूरी नहीं

NetworkOnly

लागू करने का तरीका सिर्फ़ नेटवर्क के लिए रणनीति बनाई है.

अगर आपको किसी भी वर्कबॉक्स प्लगिन.

अगर नेटवर्क का अनुरोध पूरा नहीं होता है, तो इससे WorkboxError अपवाद दिखेगा.

प्रॉपर्टी

  • कंस्ट्रक्टर

    अमान्य

    constructor फ़ंक्शन इस तरह दिखता है:

    (options?: NetworkOnlyOptions) => {...}

  • cacheName

    स्ट्रिंग

  • fetchOptions

    requestInit वैकल्पिक

  • matchOptions

    कैश क्वेरी के विकल्प ज़रूरी नहीं

  • प्लगिन
  • _awaitComplete

    अमान्य

    _awaitComplete फ़ंक्शन इस तरह दिखता है:

    (responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}

    • responseDone

      Promise&lt;Response&gt;

    • हैंडलर
    • CANNOT TRANSLATE

      अनुरोध

    • इवेंट

      ExtendableEvent

    • returns

      प्रॉमिस<void>

  • _getResponse

    अमान्य

    _getResponse फ़ंक्शन इस तरह दिखता है:

    (handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}

    • हैंडलर
    • CANNOT TRANSLATE

      अनुरोध

    • इवेंट

      ExtendableEvent

    • returns

      Promise&lt;Response&gt;

  • हैंडल

    अमान्य

    अनुरोध की रणनीति लागू करें और Promise की वैल्यू दिखाता है, जिसका समाधान हो जाएगा एक Response, जो काम के सभी प्लगिन कॉलबैक शुरू करता है.

    जब रणनीति इंस्टेंस, Workbox के साथ रजिस्टर किया गया हो workbox-routing.Route, यह तरीका अपने-आप रूट के मेल खाने पर कॉल किया जाता है.

    इसके अलावा, इस तरीके का इस्तेमाल स्टैंडअलोन FetchEvent में किया जा सकता है एक व्यक्ति ने उसे event.respondWith() को पास किया.

    handle फ़ंक्शन इस तरह दिखता है:

    (options: FetchEvent | HandlerCallbackOptions) => {...}

    • विकल्प

      FetchEvent या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.

    • returns

      Promise&lt;Response&gt;

  • handleAll

    अमान्य

    workbox-strategies.Strategy~handle के समान, लेकिन के बजाय Promise का ही जवाब दें, ताकि उसका समाधान Response हो जाए इसमें [response, done] प्रॉमिस का एक गुच्छा दिखेगा, जिसमें पहले (response) handle() की वैल्यू के बराबर है और बाद वाली वैल्यू, ऐसा वादा जो जोड़े जाने पर हल हो जाएगा रणनीति लागू करने के दौरान, event.waitUntil() पूरा हो गया है.

    done प्रॉमिस का इंतज़ार करके, यह पक्का किया जा सकता है कि अगर कोई और काम करना है, तो कार्यनीति (आमतौर पर जवाबों को संचित करती है) सफलतापूर्वक पूरी हो जाती है.

    handleAll फ़ंक्शन इस तरह दिखता है:

    (options: FetchEvent | HandlerCallbackOptions) => {...}

    • विकल्प

      FetchEvent या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.

    • returns

      [Promise<Response>, Promise<void>]

      [response, हो गया] का एक टपल ऐसा वादा किया गया हो, जिसका इस्तेमाल यह तय करने के लिए किया जा सके कि जवाब कब और जब हैंडलर ने अपना सारा काम पूरा कर लिया हो.

NetworkOnlyOptions

प्रॉपर्टी

  • fetchOptions

    requestInit वैकल्पिक

  • networkTimeoutSeconds

    नंबर वैकल्पिक

  • प्लगिन

    WorkboxPlugin[] ज़रूरी नहीं

StaleWhileRevalidate

लागू करने का तरीका फिर से पुष्टि करने के दौरान पुरानी जानकारी रणनीति बनाई है.

कैश मेमोरी और नेटवर्क, दोनों से रिसॉर्स के लिए अनुरोध किया जाता है. उपलब्ध होने पर, रणनीति, कैश मेमोरी में सेव किए गए वर्शन के साथ जवाब देगी. नेटवर्क से जवाब मिलने का इंतज़ार करें. कैश मेमोरी को नेटवर्क रिस्पॉन्स के हिसाब से अपडेट किया जाता है उसे हर अनुरोध के साथ एक्सपोर्ट किया जा सकता है.

डिफ़ॉल्ट रूप से, यह रणनीति रिस्पॉन्स को 200 स्टेटस कोड के साथ कैश मेमोरी में सेव करेगी साथ ही, ओपेक रिस्पॉन्स. ओपेक रिस्पॉन्स, क्रॉस-ऑरिजिन अनुरोध होते हैं, जिनमें रिस्पॉन्स नहीं होता CORS के साथ काम करते हैं.

अगर नेटवर्क अनुरोध पूरा नहीं होता और कैश मेमोरी का कोई मिलान नहीं होता है, तो यह एक WorkboxError अपवाद.

प्रॉपर्टी

  • कंस्ट्रक्टर

    अमान्य

    constructor फ़ंक्शन इस तरह दिखता है:

    (options?: StrategyOptions) => {...}

  • cacheName

    स्ट्रिंग

  • fetchOptions

    requestInit वैकल्पिक

  • matchOptions

    कैश क्वेरी के विकल्प ज़रूरी नहीं

  • प्लगिन
  • _awaitComplete

    अमान्य

    _awaitComplete फ़ंक्शन इस तरह दिखता है:

    (responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}

    • responseDone

      Promise&lt;Response&gt;

    • हैंडलर
    • CANNOT TRANSLATE

      अनुरोध

    • इवेंट

      ExtendableEvent

    • returns

      प्रॉमिस<void>

  • _getResponse

    अमान्य

    _getResponse फ़ंक्शन इस तरह दिखता है:

    (handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}

    • हैंडलर
    • CANNOT TRANSLATE

      अनुरोध

    • इवेंट

      ExtendableEvent

    • returns

      Promise&lt;Response&gt;

  • हैंडल

    अमान्य

    अनुरोध की रणनीति लागू करें और Promise की वैल्यू दिखाता है, जिसका समाधान हो जाएगा एक Response, जो काम के सभी प्लगिन कॉलबैक शुरू करता है.

    जब रणनीति इंस्टेंस, Workbox के साथ रजिस्टर किया गया हो workbox-routing.Route, यह तरीका अपने-आप रूट के मेल खाने पर कॉल किया जाता है.

    इसके अलावा, इस तरीके का इस्तेमाल स्टैंडअलोन FetchEvent में किया जा सकता है एक व्यक्ति ने उसे event.respondWith() को पास किया.

    handle फ़ंक्शन इस तरह दिखता है:

    (options: FetchEvent | HandlerCallbackOptions) => {...}

    • विकल्प

      FetchEvent या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.

    • returns

      Promise&lt;Response&gt;

  • handleAll

    अमान्य

    workbox-strategies.Strategy~handle के समान, लेकिन के बजाय Promise का ही जवाब दें, ताकि उसका समाधान Response हो जाए इसमें [response, done] प्रॉमिस का एक गुच्छा दिखेगा, जिसमें पहले (response) handle() की वैल्यू के बराबर है और बाद वाली वैल्यू, ऐसा वादा जो जोड़े जाने पर हल हो जाएगा रणनीति लागू करने के दौरान, event.waitUntil() पूरा हो गया है.

    done प्रॉमिस का इंतज़ार करके, यह पक्का किया जा सकता है कि अगर कोई और काम करना है, तो कार्यनीति (आमतौर पर जवाबों को संचित करती है) सफलतापूर्वक पूरी हो जाती है.

    handleAll फ़ंक्शन इस तरह दिखता है:

    (options: FetchEvent | HandlerCallbackOptions) => {...}

    • विकल्प

      FetchEvent या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.

    • returns

      [Promise<Response>, Promise<void>]

      [response, हो गया] का एक टपल ऐसा वादा किया गया हो, जिसका इस्तेमाल यह तय करने के लिए किया जा सके कि जवाब कब और जब हैंडलर ने अपना सारा काम पूरा कर लिया हो.

Strategy

एक ऐब्सट्रैक्ट बेस क्लास, जिससे रणनीति वाली अन्य सभी क्लास को भी शामिल करना चाहिए:

प्रॉपर्टी

  • कंस्ट्रक्टर

    अमान्य

    यह रणनीति का नया इंस्टेंस बनाता है और डॉक्यूमेंट किए गए सभी विकल्प सेट करता है प्रॉपर्टी का इस्तेमाल सार्वजनिक इंस्टेंस प्रॉपर्टी के तौर पर करता है.

    ध्यान दें: अगर कस्टम रणनीति की क्लास, बुनियादी रणनीति की क्लास को बढ़ाती है और को इन प्रॉपर्टी से ज़्यादा की ज़रूरत नहीं है, इसे खुद तय करने की ज़रूरत नहीं है कंस्ट्रक्टर है.

    constructor फ़ंक्शन इस तरह दिखता है:

    (options?: StrategyOptions) => {...}

  • cacheName

    स्ट्रिंग

  • fetchOptions

    requestInit वैकल्पिक

  • matchOptions

    कैश क्वेरी के विकल्प ज़रूरी नहीं

  • प्लगिन
  • _awaitComplete

    अमान्य

    _awaitComplete फ़ंक्शन इस तरह दिखता है:

    (responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}

    • responseDone

      Promise&lt;Response&gt;

    • हैंडलर
    • CANNOT TRANSLATE

      अनुरोध

    • इवेंट

      ExtendableEvent

    • returns

      प्रॉमिस<void>

  • _getResponse

    अमान्य

    _getResponse फ़ंक्शन इस तरह दिखता है:

    (handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}

    • हैंडलर
    • CANNOT TRANSLATE

      अनुरोध

    • इवेंट

      ExtendableEvent

    • returns

      Promise&lt;Response&gt;

  • _handle

    अमान्य

    _handle फ़ंक्शन इस तरह दिखता है:

    (request: Request, handler: StrategyHandler) => {...}

    • returns

      Promise&lt;Response&gt;

  • हैंडल

    अमान्य

    अनुरोध की रणनीति लागू करें और Promise की वैल्यू दिखाता है, जिसका समाधान हो जाएगा एक Response, जो काम के सभी प्लगिन कॉलबैक शुरू करता है.

    जब रणनीति इंस्टेंस, Workbox के साथ रजिस्टर किया गया हो workbox-routing.Route, यह तरीका अपने-आप रूट के मेल खाने पर कॉल किया जाता है.

    इसके अलावा, इस तरीके का इस्तेमाल स्टैंडअलोन FetchEvent में किया जा सकता है एक व्यक्ति ने उसे event.respondWith() को पास किया.

    handle फ़ंक्शन इस तरह दिखता है:

    (options: FetchEvent | HandlerCallbackOptions) => {...}

    • विकल्प

      FetchEvent या कोई ऑब्जेक्ट प्रॉपर्टी नीचे दी गई हैं.

    • returns

      Promise&lt;Response&gt;

  • handleAll

    अमान्य

    workbox-strategies.Strategy~handle के समान, लेकिन के बजाय Promise का ही जवाब दें, ताकि उसका समाधान Response हो जाए इसमें [response, done] प्रॉमिस का एक गुच्छा दिखेगा, जिसमें पहले (response) handle() की वैल्यू के बराबर है और बाद वाली वैल्यू, ऐसा वादा जो जोड़े जाने पर हल हो जाएगा रणनीति लागू करने के दौरान, event.waitUntil() पूरा हो गया है.

    done प्रॉमिस का इंतज़ार करके, यह पक्का किया जा सकता है कि अगर कोई और काम करना है, तो कार्यनीति (आमतौर पर जवाबों को संचित करती है) सफलतापूर्वक पूरी हो जाती है.

    handleAll फ़ंक्शन इस तरह दिखता है:

    (options: 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) => {...}

  • इवेंट

    ExtendableEvent

  • पैरामीटर

    कोई भी वैकल्पिक

  • CANNOT TRANSLATE

    अनुरोध

  • url

    यूआरएल वैकल्पिक

  • cacheMatch

    अमान्य

    कैश मेमोरी से मिले अनुरोध से मेल खाता है. साथ ही, लागू होने वाले किसी प्लगिन को शुरू करता है कॉलबैक मेथड) का इस्तेमाल करके cacheName, matchOptions, और plugins का इस्तेमाल करता है तय करें.

    इस तरीके का इस्तेमाल करने पर, प्लगिन के लाइफ़साइकल के इन तरीकों को शुरू किया जाता है:

    • cacheKeyWillByUsed()
    • cachedResponseWillByUsed()

    cacheMatch फ़ंक्शन इस तरह दिखता है:

    (key: RequestInfo) => {...}

    • बटन

      RequestInfo

      कैश मेमोरी कुंजी के तौर पर इस्तेमाल करने के लिए अनुरोध या यूआरएल.

    • returns

      Promise&lt;Response&gt;

      अगर मिलता है, तो इससे मिलता-जुलता कोई जवाब मिलता है.

  • cachePut

    अमान्य

    कैश मेमोरी में एक अनुरोध/जवाब की जोड़ी रखता है (और लागू की गई किसी सुविधा को शुरू करता है प्लगिन कॉलबैक विधियां) पर परिभाषित cacheName और plugins का उपयोग करके रणनीति ऑब्जेक्ट.

    इस तरीके का इस्तेमाल करने पर, प्लगिन के लाइफ़साइकल के इन तरीकों को शुरू किया जाता है:

    • cacheKeyWillByUsed()
    • cacheWillUpdate()
    • cacheDidUpdate()

    cachePut फ़ंक्शन इस तरह दिखता है:

    (key: RequestInfo, response: Response) => {...}

    • बटन

      RequestInfo

      कैश कुंजी के तौर पर इस्तेमाल करने के लिए अनुरोध या यूआरएल.

    • जवाब

      जवाब

      कैश मेमोरी में सेव किया गया रिस्पॉन्स.

    • returns

      Promise&lt;boolean&gt;

      अगर कैश मेमोरी में सेव होने वाले अपडेट की वजह से रिस्पॉन्स मिला हो, तो 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&lt;Response&gt;

  • fetchAndCachePut

    अमान्य

    this.fetch() कॉल करने पर (बैकग्राउंड में) this.cachePut() चालू रहेगा this.fetch() ने जवाब जनरेट किया.

    this.cachePut() पर कॉल करने पर, this.waitUntil() अपने-आप शुरू हो जाता है, इसलिए आपको इवेंट के लिए waitUntil() को मैन्युअल रूप से कॉल नहीं करना पड़ेगा.

    fetchAndCachePut फ़ंक्शन इस तरह दिखता है:

    (input: RequestInfo) => {...}

    • इनपुट

      RequestInfo

      वह अनुरोध या यूआरएल जिसे फ़ेच और कैश मेमोरी में सेव किया जाना है.

    • returns

      Promise&lt;Response&gt;

  • getCacheKey

    अमान्य

    cacheKeyWillBeUsed कॉलबैक के लिए प्लगिन की सूची की जांच करता है और क्रम में मिलने वाले इनमें से किसी भी कॉलबैक को लागू करता है. आखिरी Request आखिरी प्लग इन से मिले ऑब्जेक्ट को कैश मेमोरी के लिए कैश कुंजी माना जाता है पढ़ता और/या लिखता है. अगर किसी भी cacheKeyWillBeUsed प्लगिन कॉलबैक में ऐसा नहीं है पंजीकृत किया जा चुका है, पास किया गया अनुरोध बिना किसी बदलाव के वापस लौटा दिया गया है

    getCacheKey फ़ंक्शन इस तरह दिखता है:

    (request: Request, mode: "read" 
     | "write"
    ) => {...}

    • CANNOT TRANSLATE

      अनुरोध

    • मोड

      "पढ़ें"
       | "लिखें"

    • returns

      Promise&lt;Request&gt;

  • 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[] ज़रूरी नहीं