वर्कबॉक्स रूटिंग

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

workbox-routing एक ऐसा मॉड्यूल है जो इन अनुरोधों को जवाब देने वाले अलग-अलग फ़ंक्शन पर "रूट" करना आसान बनाता है.

रूटिंग कैसे की जाती है

जब किसी नेटवर्क अनुरोध की वजह से सर्विस वर्कर को फ़ेच करने वाला इवेंट होता है, तो workbox-routing बताए गए रूट और हैंडलर का इस्तेमाल करके, अनुरोध का जवाब देने की कोशिश करेगा.

वर्कबॉक्स रूटिंग डायग्राम

ऊपर दी गई बातों का ध्यान रखें:

  • अनुरोध का तरीका अहम है. डिफ़ॉल्ट रूप से, GET अनुरोधों के लिए रूट रजिस्टर किए जाते हैं. अगर आपको अन्य तरह के अनुरोधों को रोकना है, तो आपको इसका तरीका बताना होगा.

  • रूट के रजिस्ट्रेशन का क्रम अहम है. अगर ऐसे कई रूट रजिस्टर किए गए हैं जो किसी अनुरोध को पूरा कर सकते हैं, तो सबसे पहले रजिस्टर किए गए रूट का इस्तेमाल, अनुरोध का जवाब देने के लिए किया जाएगा.

रूट को रजिस्टर करने के कुछ तरीके हैं: कॉलबैक, रेगुलर एक्सप्रेशन या रूट इंस्टेंस का इस्तेमाल किया जा सकता है.

रास्तों में मैचिंग और हैंडलिंग

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

वर्कबॉक्स में कुछ ऐसे हेल्पर होते हैं जो आपके लिए मैचिंग और हैंडलिंग का काम करेंगे, लेकिन अगर आप कभी भी अलग व्यवहार की ज़रूरत महसूस करें, तो कस्टम मैच और हैंडलर फ़ंक्शन लिखना सबसे अच्छा विकल्प है.

मैच करने वाले कॉलबैक फ़ंक्शन को ExtendableEvent, Request, और एक URL ऑब्जेक्ट पास किया जाता है. इसके लिए, सही वैल्यू दिखाई जाती है. आसान उदाहरण के लिए, आपके पास किसी खास यूआरएल से मैच करने का विकल्प है, जैसे कि:

const matchCb = ({url, request, event}) => {
  return url.pathname === '/special/url';
};

इस्तेमाल के ज़्यादातर उदाहरणों को, url या request की जांच या जांच करके कवर किया जा सकता है.

एक हैंडलर कॉलबैक फ़ंक्शन को उसके लिए भी ExtendableEvent, Request, और URL ऑब्जेक्ट दिया जाएगा. साथ ही, params वैल्यू भी दी जाएगी, जो "match" फ़ंक्शन से मिलने वाली वैल्यू है.

const handlerCb = async ({url, request, event, params}) => {
  const response = await fetch(request);
  const responseBody = await response.text();
  return new Response(`${responseBody} <!-- Look Ma. Added Content. -->`, {
    headers: response.headers,
  });
};

आपके हैंडलर को एक ऐसा प्रॉमिस देना होगा जो Response को रिज़ॉल्व करता हो. इस उदाहरण में, हम async और await का इस्तेमाल कर रहे हैं. हुड के नीचे, रिटर्न Response वैल्यू को प्रॉमिस में रैप कर दिया जाएगा.

इन कॉलबैक को इस तरह रजिस्टर किया जा सकता है:

import {registerRoute} from 'workbox-routing';

registerRoute(matchCb, handlerCb);

सिर्फ़ एक सीमा यह है कि "match" कॉलबैक को सिंक्रनाइज़ तरीके से एक सही वैल्यू रिटर्न करना चाहिए. आप कोई भी एसिंक्रोनस काम नहीं कर सकते. इसकी वजह यह है कि फ़ेच इवेंट के लिए Router को सिंक्रोनस तरीके से रिस्पॉन्स देना चाहिए या फ़ेच करने के अन्य इवेंट के डेटा को ऐक्सेस करने की अनुमति देनी चाहिए.

आम तौर पर "हैंडलर" कॉलबैक, workbox-strategies से जुड़ी रणनीतियों में से किसी एक का इस्तेमाल करता है, जो कुछ इस तरह है:

import {registerRoute} from 'workbox-routing';
import {StaleWhileRevalidate} from 'workbox-strategies';

registerRoute(matchCb, new StaleWhileRevalidate());

इस पेज में, हम workbox-routing के बारे में बात करेंगे. हालांकि, यहां आपको वर्कबॉक्स की रणनीतियों के बारे में ज़्यादा जानकारी मिल सकती है.

रेगुलर एक्सप्रेशन रूट को रजिस्टर करने का तरीका

"match" कॉलबैक के बजाय, रेगुलर एक्सप्रेशन का इस्तेमाल करना एक सामान्य तरीका है. वर्कबॉक्स की मदद से, इसे इस तरह आसानी से लागू किया जा सकता है:

import {registerRoute} from 'workbox-routing';

registerRoute(new RegExp('/styles/.*\\.css'), handlerCb);

एक ही ऑरिजिन से मिले अनुरोधों के लिए, यह रेगुलर एक्सप्रेशन तब तक मैच करेगा, जब तक अनुरोध का यूआरएल रेगुलर एक्सप्रेशन से मेल खाता है.

  • https://example.com/styles/main.css
  • https://example.com/styles/nested/file.css
  • https://example.com/nested/styles/directory.css

हालांकि, क्रॉस-ऑरिजिन अनुरोधों के लिए, रेगुलर एक्सप्रेशन यूआरएल की शुरुआत से मेल खाना चाहिए. इसकी वजह यह है कि रेगुलर एक्सप्रेशन new RegExp('/styles/.*\\.css') के साथ, यह संभावना नहीं है कि आप तीसरे पक्ष की सीएसएस फ़ाइलों को मैच करना चाहते थे.

  • https://cdn.third-party-site.com/styles/main.css
  • https://cdn.third-party-site.com/styles/nested/file.css
  • https://cdn.third-party-site.com/nested/styles/directory.css

अगर आपको ऐसा करना है, तो आपको बस यह पक्का करना होगा कि रेगुलर एक्सप्रेशन, यूआरएल की शुरुआत से मेल खाता हो. अगर हमें https://cdn.third-party-site.com के अनुरोधों को मैच करना होता, तो हम रेगुलर एक्सप्रेशन new RegExp('https://cdn\\.third-party-site\\.com.*/styles/.*\\.css') का इस्तेमाल करते.

  • https://cdn.third-party-site.com/styles/main.css
  • https://cdn.third-party-site.com/styles/nested/file.css
  • https://cdn.third-party-site.com/nested/styles/directory.css

अगर आपको लोकल और तीसरे पक्ष, दोनों का मिलान करना है, तो अपने रेगुलर एक्सप्रेशन की शुरुआत में वाइल्डकार्ड का इस्तेमाल किया जा सकता है. हालांकि, ऐसा सावधानी से करना चाहिए, ताकि यह पक्का किया जा सके कि इससे आपके वेब ऐप्लिकेशन में कोई अनचाहा व्यवहार न हो.

नेविगेशन रूट को रजिस्टर करने का तरीका

अगर आपकी साइट एक पेज का ऐप्लिकेशन है, तो सभी नेविगेशन अनुरोधों के लिए एक खास रिस्पॉन्स दिखाने के लिए, NavigationRoute का इस्तेमाल किया जा सकता है.

import {createHandlerBoundToURL} from 'workbox-precaching';
import {NavigationRoute, registerRoute} from 'workbox-routing';

// This assumes /app-shell.html has been precached.
const handler = createHandlerBoundToURL('/app-shell.html');
const navigationRoute = new NavigationRoute(handler);
registerRoute(navigationRoute);

जब भी कोई उपयोगकर्ता ब्राउज़र में आपकी साइट पर जाता है, तो उस पेज के लिए अनुरोध एक नेविगेशन अनुरोध होगा. उसे कैश मेमोरी में सेव किया गया पेज /app-shell.html दिखेगा. (ध्यान दें: पेज को workbox-precaching के ज़रिए या खुद इंस्टॉल करने के तरीके से कैश मेमोरी में सेव करना चाहिए.)

डिफ़ॉल्ट रूप से, यह नेविगेशन के सभी अनुरोधों के जवाब देगा. अगर आपको यूआरएल के सबसेट पर पाबंदी लगानी है, तो allowlist और denylist का इस्तेमाल करें. इससे यह तय किया जा सकता है कि कौनसे पेज इस रूट से मेल खाएंगे.

import {createHandlerBoundToURL} from 'workbox-precaching';
import {NavigationRoute, registerRoute} from 'workbox-routing';

// This assumes /app-shell.html has been precached.
const handler = createHandlerBoundToURL('/app-shell.html');
const navigationRoute = new NavigationRoute(handler, {
  allowlist: [new RegExp('/blog/')],
  denylist: [new RegExp('/blog/restricted/')],
});
registerRoute(navigationRoute);

इस बात का ध्यान रखें कि अगर कोई यूआरएल allowlist और denylist, दोनों में है, तो denylist की वैल्यू मिलेगी.

डिफ़ॉल्ट हैंडलर सेट करें

अगर आपको रूट से मेल न खाने वाले अनुरोधों के लिए एक "हैंडलर" उपलब्ध कराना है, तो डिफ़ॉल्ट हैंडलर सेट करें.

import {setDefaultHandler} from 'workbox-routing';

setDefaultHandler(({url, event, params}) => {
  // ...
});

कैच हैंडलर सेट करना

अगर आपके किसी भी रूट में गड़बड़ी होती है, तो कैच हैंडलर सेट करके ग्रेसफ़ुल तरीके से कैप्चर और डिग्रेड किया जा सकता है.

import {setCatchHandler} from 'workbox-routing';

setCatchHandler(({url, event, params}) => {
  ...
});

नॉन-GET अनुरोधों के लिए रूट तय करना

डिफ़ॉल्ट रूप से सभी रास्तों को GET अनुरोधों के लिए माना जाता है.

अगर आपको POST अनुरोध जैसे दूसरे अनुरोधों को रूट करना है, तो रूट को रजिस्टर करते समय आपको इसका तरीका तय करना होगा, जैसे:

import {registerRoute} from 'workbox-routing';

registerRoute(matchCb, handlerCb, 'POST');
registerRoute(new RegExp('/api/.*\\.json'), handlerCb, 'POST');

राऊटर का लॉग इकट्ठा करने की सुविधा

workbox-routing के लॉग का इस्तेमाल करके, अनुरोध के फ़्लो को तय किया जा सकता है. इससे, यह हाइलाइट होगा कि Workbox से कौनसे यूआरएल प्रोसेस किए जा रहे हैं.

रूटिंग लॉग

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

डीबग और लॉग रूटिंग मैसेज

बेहतर इस्तेमाल

अगर वर्कबॉक्स राऊटर को अनुरोध मिलने के समय पर ज़्यादा कंट्रोल चाहिए, तो अपना Router इंस्टेंस बनाएं और इसके handleRequest() तरीके का इस्तेमाल करके अनुरोध का जवाब देने के लिए जब चाहें, तब इसका इस्तेमाल करें.

import {Router} from 'workbox-routing';

const router = new Router();

self.addEventListener('fetch', event => {
  const {request} = event;
  const responsePromise = router.handleRequest({
    event,
    request,
  });
  if (responsePromise) {
    // Router found a route to handle the request.
    event.respondWith(responsePromise);
  } else {
    // No route was found to handle the request.
  }
});

सीधे Router का इस्तेमाल करते समय, आपको रूट रजिस्टर करने के लिए Route क्लास या एक्सटेंडेड क्लास में से किसी का भी इस्तेमाल करना होगा.

import {Route, RegExpRoute, NavigationRoute, Router} from 'workbox-routing';

const router = new Router();
router.registerRoute(new Route(matchCb, handlerCb));
router.registerRoute(new RegExpRoute(new RegExp(...), handlerCb));
router.registerRoute(new NavigationRoute(handlerCb));

टाइप

NavigationRoute

नेविगेशन रूट की मदद से, ऐसा workbox-routing.Route आसानी से बनाया जा सकता है जो ब्राउज़र [नेविगेशन अनुरोधों]https://developers.google.com/web/fundamentals/primers/service-workers/high-performance-loading#first_what_are_navigation_requests से मेल खाता हो.

यह सिर्फ़ उन अनुरोधों से मेल खाएगा जिनके लिए https://fetch.spec.whatwg.org/#concept-request-mode|mode को navigate पर सेट किया गया है.

आपके पास denylist और allowlist पैरामीटर में से एक या दोनों का इस्तेमाल करके, इस रूट को नेविगेशन अनुरोधों के सबसेट पर लागू करने का विकल्प है.

प्रॉपर्टी

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

    void

    अगर denylist और allowlist, दोनों दिए गए हैं, तो denylist को प्राथमिकता दी जाएगी और अनुरोध इस रूट से मेल नहीं खाएगा.

    allowlist और denylist में रेगुलर एक्सप्रेशन का मिलान, अनुरोध किए गए यूआरएल के स्ट्रिंग जोड़ने वाले [pathname]https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/pathname और [search]https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/search हिस्सों से किया जाता है.

    ध्यान दें: नेविगेशन के दौरान, इन रेगुलर एक्सप्रेशन का आकलन हर डेस्टिनेशन यूआरएल के हिसाब से किया जा सकता है. जटिल RegExps का इस्तेमाल न करें वरना आपके उपयोगकर्ताओं को आपकी साइट नेविगेट करने में देरी हो सकती है.

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

    (handler: RouteHandler,options?: NavigationRouteMatchOptions)=> {...}

    • हैंडलर

      एक कॉलबैक फ़ंक्शन, जो रिस्पॉन्स में प्रॉमिस दिखाता है.

    • विकल्प

      NavigationRouteMatchOptions ज़रूरी नहीं

  • catchHandler

    RouteHandlerObject ज़रूरी नहीं

  • हैंडलर
  • मिलान
  • method

    HTTPMethod

  • setCatchHandler

    void

    setCatchHandler फ़ंक्शन ऐसा दिखता है:

    (handler: RouteHandler)=> {...}

    • हैंडलर

      ऐसा कॉलबैक फ़ंक्शन जो किसी जवाब के लिए प्रॉमिस रिज़ॉल्व करने पर रिटर्न करता है

NavigationRouteMatchOptions

प्रॉपर्टी

  • जिन लोगों या संगठनों को अनुमति मिली है उनकी सूची

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

  • ब्लॉकलिस्ट

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

RegExpRoute

RegExpRoute से workbox-routing.Route के आधार पर रेगुलर एक्सप्रेशन बनाना आसान हो जाता है.

एक ही ऑरिजिन वाले अनुरोधों के लिए, रेगुलर एक्सप्रेशन को सिर्फ़ यूआरएल के हिस्से से मैच करने की ज़रूरत है. तीसरे पक्ष के सर्वर से किए गए अनुरोधों के लिए, आपको एक RegExp तय करना होगा जो यूआरएल की शुरुआत से मेल खाता हो.

प्रॉपर्टी

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

    void

    अगर रेगुलर एक्सप्रेशन में [capture groups]https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#grouping-back-references हैं, तो कैप्चर की गई वैल्यू, workbox-routing~handlerCallback params तर्क में पास कर दी जाएंगी.

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

    (regExp: RegExp,handler: RouteHandler,method?: HTTPMethod)=> {...}

    • regExp

      RegExp

      यूआरएल से मेल खाने वाला रेगुलर एक्सप्रेशन.

    • हैंडलर

      एक कॉलबैक फ़ंक्शन, जो रिस्पॉन्स में प्रॉमिस दिखाता है.

    • method

      HTTPMethod ज़रूरी नहीं

  • catchHandler

    RouteHandlerObject ज़रूरी नहीं

  • हैंडलर
  • मिलान
  • method

    HTTPMethod

  • setCatchHandler

    void

    setCatchHandler फ़ंक्शन ऐसा दिखता है:

    (handler: RouteHandler)=> {...}

    • हैंडलर

      ऐसा कॉलबैक फ़ंक्शन जो किसी जवाब के लिए प्रॉमिस रिज़ॉल्व करने पर रिटर्न करता है

Route

Route में कॉलबैक फ़ंक्शन का एक जोड़ा होता है, "match" और "हैंडलर". "मैच" कॉलबैक से यह तय होता है कि किसी रूट का इस्तेमाल, अनुरोध को "हैंडल" करने के लिए किया जाना चाहिए या नहीं. इसके लिए, ग़ैर-गलत वैल्यू दिखाई जाती है. "हैंडलर" कॉलबैक को तब कॉल किया जाता है, जब कोई मैच होता है. साथ ही, इसे Response पर ले जाने वाला प्रॉमिस मिलना चाहिए.

प्रॉपर्टी

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

    void

    रूट क्लास के लिए कंस्ट्रक्टर.

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

    (match: RouteMatchCallback,handler: RouteHandler,method?: HTTPMethod)=> {...}

    • मिलान

      ऐसा कॉलबैक फ़ंक्शन जो यह तय करता है कि रूट, दिए गए fetch इवेंट से मैच करता है या नहीं. इसके लिए, गलत वैल्यू का इस्तेमाल किया जाता है.

    • हैंडलर

      ऐसा कॉलबैक फ़ंक्शन जो किसी रिस्पॉन्स का जवाब देने का प्रॉमिस देता है.

    • method

      HTTPMethod ज़रूरी नहीं

  • catchHandler

    RouteHandlerObject ज़रूरी नहीं

  • हैंडलर
  • मिलान
  • method

    HTTPMethod

  • setCatchHandler

    void

    setCatchHandler फ़ंक्शन ऐसा दिखता है:

    (handler: RouteHandler)=> {...}

    • हैंडलर

      ऐसा कॉलबैक फ़ंक्शन जो किसी जवाब के लिए प्रॉमिस रिज़ॉल्व करने पर रिटर्न करता है

Router

राऊटर को एक या उससे ज़्यादा workbox-routing.Route की मदद से, FetchEvent को प्रोसेस करने के लिए इस्तेमाल किया जा सकता है. साथ ही, मिलता-जुलता रूट मौजूद होने पर, Response के साथ काम करता है.

अगर कोई रूट दिए गए अनुरोध से मेल नहीं खाता है, तो राऊटर तय होने पर "डिफ़ॉल्ट" हैंडलर का इस्तेमाल करेगा.

अगर मिलते-जुलते रूट में कोई गड़बड़ी होती है, तो राऊटर "कैच" हैंडलर का इस्तेमाल करेगा. ऐसा तब होगा, जब किसी रूटर को समस्याओं को अच्छी तरह से हल करने और अनुरोध का जवाब देने के लिए बताया गया हो.

अगर कोई अनुरोध एक से ज़्यादा रास्तों से मेल खाता है, तो अनुरोध का जवाब देने के लिए सबसे पहले रजिस्टर किए गए रास्ते का इस्तेमाल किया जाएगा.

प्रॉपर्टी

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

    void

    नए राऊटर को शुरू करता है.

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

    ()=> {...}

  • रास्ते

    Map<HTTPMethodRoute[]>

  • addCacheListener

    void

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

    विंडो से भेजे गए मैसेज डेटा का फ़ॉर्मैट इस तरह होना चाहिए. जहां urlsToCache कलेक्शन में यूआरएल स्ट्रिंग या यूआरएल स्ट्रिंग + requestInit ऑब्जेक्ट की कलेक्शन मौजूद हो सकता है (जैसा कि fetch() को भेजा जाता है).

    {
      type: 'CACHE_URLS',
      payload: {
        urlsToCache: [
          './script1.js',
          './script2.js',
          ['./script3.js', {mode: 'no-cors'}],
        ],
      },
    }
    

    addCacheListener फ़ंक्शन ऐसा दिखता है:

    ()=> {...}

  • addFetchListener

    void

    जब कोई रूट, इवेंट के अनुरोध से मैच करता है, तब इवेंट का जवाब देने के लिए, फ़ेच इवेंट लिसनर जोड़ा जाता है.

    addFetchListener फ़ंक्शन ऐसा दिखता है:

    ()=> {...}

  • findMatchingRoute

    void

    रजिस्टर किए गए रूट की सूची के लिए अनुरोध और यूआरएल (और वैकल्पिक रूप से कोई इवेंट) की जांच करता है. अगर कोई मैच मिलता है, तो मैच से जनरेट किए गए किसी भी पैरामीटर के साथ संबंधित रूट दिखाता है.

    findMatchingRoute फ़ंक्शन ऐसा दिखता है:

    (options: RouteMatchCallbackOptions)=> {...}

    • returns

      ऑब्जेक्ट

      route और params प्रॉपर्टी वाला कोई ऑब्जेक्ट. अगर कोई मिलता-जुलता रास्ता मिलता है, तो इसकी जानकारी अपने-आप भर जाती है. अगर ऐसा नहीं है, तो undefined इसकी जानकारी अपने-आप भर जाती है.

  • handleRequest

    void

    सही रूट के हैंडलर से जवाब पाने के लिए, FetchEvent ऑब्जेक्ट पर रूटिंग के नियम लागू करें.

    handleRequest फ़ंक्शन ऐसा दिखता है:

    (options: object)=> {...}

    • विकल्प

      ऑब्जेक्ट

      • इवेंट

        ExtendableEvent

        वह इवेंट जिससे अनुरोध ट्रिगर हुआ.

      • CANNOT TRANSLATE

        अनुरोध

        मैनेज करने का अनुरोध.

    • returns

      वादा<Response>

      अगर रजिस्टर किया गया रूट, अनुरोध को पूरा कर पाता है, तो प्रॉमिस लौटाया जाता है. अगर कोई मिलता-जुलता रास्ता नहीं है और defaultHandler नहीं है, तो undefined वापस आ जाता है.

  • registerRoute

    void

    राऊटर के साथ रूट को रजिस्टर करता है.

    registerRoute फ़ंक्शन ऐसा दिखता है:

    (route: Route)=> {...}

    • रास्ता

      रजिस्टर करने का रूट.

  • setCatchHandler

    void

    अगर किसी रूट पर अनुरोध हैंडल करते समय कोई गड़बड़ी मिलती है, तो इस handler पर कॉल किया जाएगा और इसे जवाब देने का मौका दिया जाएगा.

    setCatchHandler फ़ंक्शन ऐसा दिखता है:

    (handler: RouteHandler)=> {...}

    • हैंडलर

      एक कॉलबैक फ़ंक्शन, जो रिस्पॉन्स में प्रॉमिस दिखाता है.

  • setDefaultHandler

    void

    एक डिफ़ॉल्ट handler तय करें, जिसे तब कॉल किया जाता है, जब कोई भी रूट, आने वाले अनुरोध से साफ़ तौर पर मेल नहीं खाता.

    हर एचटीटीपी तरीके ('GET', 'POST' वगैरह) को अपना डिफ़ॉल्ट हैंडलर मिलता है.

    डिफ़ॉल्ट हैंडलर के बिना, मेल न खाने वाले अनुरोध नेटवर्क पर इस तरह चले जाएंगे जैसे कि कोई भी सर्विस वर्कर मौजूद न हो.

    setDefaultHandler फ़ंक्शन ऐसा दिखता है:

    (handler: RouteHandler,method?: HTTPMethod)=> {...}

    • हैंडलर

      एक कॉलबैक फ़ंक्शन, जो रिस्पॉन्स में प्रॉमिस दिखाता है.

    • method

      HTTPMethod ज़रूरी नहीं

  • unregisterRoute

    void

    राऊटर के साथ रूट का रजिस्ट्रेशन रद्द करता है.

    unregisterRoute फ़ंक्शन ऐसा दिखता है:

    (route: Route)=> {...}

    • रास्ता

      रजिस्ट्रेशन रद्द करने का तरीका.

तरीके

registerRoute()

workbox-routing.registerRoute(
  capture: string|RegExp|RouteMatchCallback|Route,
  handler?: RouteHandler,
  method?: HTTPMethod,
)

सिंगलटन राऊटर इंस्टेंस के लिए, कैश मेमोरी में सेव करने की रणनीति का इस्तेमाल करके, RegExp, स्ट्रिंग या फ़ंक्शन को आसानी से रजिस्टर करें.

यह तरीका ज़रूरी होने पर आपके लिए एक रूट जनरेट करेगा और workbox-routing.Router#registerRoute को कॉल करें.

पैरामीटर

  • फ़ोटो लेना

    स्ट्रिंग|RegExp|RouteMatchCallback|रूट

    अगर कैप्चर पैरामीटर Route है, तो अन्य सभी तर्कों को अनदेखा कर दिया जाएगा.

  • हैंडलर

    RouteHandler ज़रूरी नहीं

  • method

    HTTPMethod ज़रूरी नहीं

रिटर्न

setCatchHandler()

workbox-routing.setCatchHandler(
  handler: RouteHandler,
)

अगर किसी रूट पर अनुरोध हैंडल करते समय कोई गड़बड़ी मिलती है, तो इस handler पर कॉल किया जाएगा और इसे जवाब देने का मौका दिया जाएगा.

पैरामीटर

  • हैंडलर

    एक कॉलबैक फ़ंक्शन, जो रिस्पॉन्स में प्रॉमिस दिखाता है.

setDefaultHandler()

workbox-routing.setDefaultHandler(
  handler: RouteHandler,
)

एक डिफ़ॉल्ट handler तय करें, जिसे तब कॉल किया जाता है, जब कोई भी रूट, आने वाले अनुरोध से साफ़ तौर पर मेल नहीं खाता.

डिफ़ॉल्ट हैंडलर के बिना, मेल न खाने वाले अनुरोध नेटवर्क पर इस तरह चले जाएंगे जैसे कि कोई भी सर्विस वर्कर मौजूद न हो.

पैरामीटर

  • हैंडलर

    एक कॉलबैक फ़ंक्शन, जो रिस्पॉन्स में प्रॉमिस दिखाता है.