सर्विस वर्कर, किसी पेज के लिए नेटवर्क अनुरोधों को रोक सकता है. यह कैश मेमोरी में सेव किए गए कॉन्टेंट, नेटवर्क की सामग्री या सर्विस वर्कर में जनरेट किए गए कॉन्टेंट के साथ ब्राउज़र को रिस्पॉन्स दे सकता है.
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 ज़रूरी नहीं
-
-
RouteHandlerObject ज़रूरी नहीं
-
HTTPMethod
-
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 ज़रूरी नहीं
-
returns
-
-
catchHandler
RouteHandlerObject ज़रूरी नहीं
-
हैंडलर
-
मिलान
-
method
HTTPMethod
-
setCatchHandler
void
setCatchHandler
फ़ंक्शन ऐसा दिखता है:(handler: RouteHandler) => {...}
-
हैंडलर
ऐसा कॉलबैक फ़ंक्शन जो किसी जवाब के लिए प्रॉमिस रिज़ॉल्व करने पर रिटर्न करता है
-
Route
Route
में कॉलबैक फ़ंक्शन का एक जोड़ा होता है, "match" और "हैंडलर".
"मैच" कॉलबैक से यह तय होता है कि किसी रूट का इस्तेमाल, अनुरोध को "हैंडल" करने के लिए किया जाना चाहिए या नहीं. इसके लिए, ग़ैर-गलत वैल्यू दिखाई जाती है. "हैंडलर" कॉलबैक
को तब कॉल किया जाता है, जब कोई मैच होता है. साथ ही, इसे Response
पर ले जाने वाला प्रॉमिस मिलना चाहिए.
प्रॉपर्टी
-
कंस्ट्रक्टर
void
रूट क्लास के लिए कंस्ट्रक्टर.
constructor
फ़ंक्शन ऐसा दिखता है:(match: RouteMatchCallback, handler: RouteHandler, method?: HTTPMethod) => {...}
-
मिलान
ऐसा कॉलबैक फ़ंक्शन जो यह तय करता है कि रूट, दिए गए
fetch
इवेंट से मैच करता है या नहीं. इसके लिए, गलत वैल्यू का इस्तेमाल किया जाता है. -
हैंडलर
ऐसा कॉलबैक फ़ंक्शन जो किसी रिस्पॉन्स का जवाब देने का प्रॉमिस देता है.
-
method
HTTPMethod ज़रूरी नहीं
-
returns
-
-
catchHandler
RouteHandlerObject ज़रूरी नहीं
-
हैंडलर
-
मिलान
-
method
HTTPMethod
-
setCatchHandler
void
setCatchHandler
फ़ंक्शन ऐसा दिखता है:(handler: RouteHandler) => {...}
-
हैंडलर
ऐसा कॉलबैक फ़ंक्शन जो किसी जवाब के लिए प्रॉमिस रिज़ॉल्व करने पर रिटर्न करता है
-
Router
राऊटर को एक या उससे ज़्यादा workbox-routing.Route
की मदद से, FetchEvent
को प्रोसेस करने के लिए इस्तेमाल किया जा सकता है. साथ ही, मिलता-जुलता रूट मौजूद होने पर, Response
के साथ काम करता है.
अगर कोई रूट दिए गए अनुरोध से मेल नहीं खाता है, तो राऊटर तय होने पर "डिफ़ॉल्ट" हैंडलर का इस्तेमाल करेगा.
अगर मिलते-जुलते रूट में कोई गड़बड़ी होती है, तो राऊटर "कैच" हैंडलर का इस्तेमाल करेगा. ऐसा तब होगा, जब किसी रूटर को समस्याओं को अच्छी तरह से हल करने और अनुरोध का जवाब देने के लिए बताया गया हो.
अगर कोई अनुरोध एक से ज़्यादा रास्तों से मेल खाता है, तो अनुरोध का जवाब देने के लिए सबसे पहले रजिस्टर किए गए रास्ते का इस्तेमाल किया जाएगा.
प्रॉपर्टी
-
कंस्ट्रक्टर
void
नए राऊटर को शुरू करता है.
constructor
फ़ंक्शन ऐसा दिखता है:() => {...}
-
returns
-
-
रास्ते
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) => {...}
-
विकल्प
ऑब्जेक्ट
-
event
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 ज़रूरी नहीं
लौटाए गए प्रॉडक्ट
-
जनरेट किया गया
Route
.
setCatchHandler()
workbox-routing.setCatchHandler(
handler: RouteHandler,
)
अगर किसी रूट पर अनुरोध हैंडल करते समय कोई गड़बड़ी मिलती है, तो इस handler
पर कॉल किया जाएगा और इसे जवाब देने का मौका दिया जाएगा.
पैरामीटर
-
हैंडलर
एक कॉलबैक फ़ंक्शन, जो रिस्पॉन्स में प्रॉमिस दिखाता है.
setDefaultHandler()
workbox-routing.setDefaultHandler(
handler: RouteHandler,
)
एक डिफ़ॉल्ट handler
तय करें, जिसे तब कॉल किया जाता है, जब कोई भी रूट, आने वाले अनुरोध से साफ़ तौर पर मेल नहीं खाता.
डिफ़ॉल्ट हैंडलर के बिना, मेल न खाने वाले अनुरोध नेटवर्क पर इस तरह चले जाएंगे जैसे कि कोई भी सर्विस वर्कर मौजूद न हो.
पैरामीटर
-
हैंडलर
एक कॉलबैक फ़ंक्शन, जो रिस्पॉन्स में प्रॉमिस दिखाता है.