ওয়ার্কবক্সটি মডুলার হওয়ার জন্য তৈরি করা হয়েছে, যা ডেভেলপারদের একটি ফাইলে সবকিছু ডাউনলোড করতে বাধ্য না করেই তারা ব���যবহার করতে চায় এমন টুকরো নির্বাচন করতে দেয়।
তবে মডিউলগুলির মধ্যে ওভারল্যাপ রয়েছে, উদাহরণস্বরূপ, প্রতিটি মডিউল কনসোলের সাথে ইন্টারঅ্যাক্ট করতে, অর্থপূর্ণ ত্রুটিগুলি নিক্ষেপ করতে এবং নেটওয়ার্ক বা ক্যাশে ব্যবহার করতে পছন্দ করবে। প্রতিটি মডিউল একই যুক্তি প্রয়োগ করা এড়াতে, workbox-core
এই সাধারণ কোড ধারণ করে যার উপর প্রতিটি মডিউল নির্ভর করে।
এই মডিউলটি ডেভেলপারদের কিছু কার্যকারিতা প্রদান করে, কিন্তু লগ লেভেল এবং ক্যাশিং এর বাইরে, workbox-core
শেষ ডেভেলপারের পরিবর্তে প্রতিটি মডিউলে অভ্যন্তরীণ যুক্তি প্রদান করে।
ডিফল্ট ক্যাশে নামগুলি দেখুন এবং পরিবর্তন করুন
ওয়ার্কবক্স cacheNames
মাধ্যমে এটির ক্যাশে সংজ্ঞায়িত করে:
import {cacheNames} from 'workbox-core';
console.log(cacheNames.precache);
console.log(cacheNames.runtime);
console.log(cacheNames.googleAnalytics);
এই ক্যাশের নামগুলি একটি উপসর্গ, একটি নাম এবং প্রত্যয় বিন্যাসে তৈরি করা হয়, যেখানে ক্যাশে ব্যবহারের উপর ভিত্তি করে নাম পরিবর্তিত হয়।
<prefix>-<cache-id>-<suffix>
আপনি setCacheNameDetails()
এ পাস করা সমস্ত বা কিছু মান পরিবর্তন করে এই ডিফল্ট নামগুলি পরিবর্তন করতে পারেন।
import {cacheNames, setCacheNameDetails} from 'workbox-core';
setCacheNameDetails({
prefix: 'my-app',
suffix: 'v1',
precache: 'install-time',
runtime: 'run-time',
googleAnalytics: 'ga',
});
// Will print 'my-app-install-time-v1'
console.log(cacheNames.precache);
// Will print 'my-app-run-time-v1'
console.log(cacheNames.runtime);
// Will print 'my-app-ga-v1'
console.log(cacheNames.googleAnalytics);
উপসর্গ এবং প্রত্যয়গুলির জন্য প্রধান ব্যবহারের ক্ষেত্রে হল যে আপনি যদি একাধিক প্রকল্পের জন্য ওয়ার্কবক্স ব্যবহার করেন এবং প্রতিটি প্রকল্পের জন্য একই লোকালহোস্ট পোর্ট ব্যবহার করেন, প্রতিটি মডিউলের জন্য একটি কাস্টম উপসর্গ সেট করা ক্যাশেগুলিকে একে অপরের সাথে দ্বন্দ্ব থেকে রক্ষা করবে।
ক্লায়েন্টদের দাবি
কিছু বিকাশকারী একটি নতুন পরিষেবা কর্মী প্রকাশ করতে সক্ষম হতে ��ায় এবং এটি সক্রিয় হওয়ার সাথে সাথে এটি ইতিমধ্যেই খোলা ওয়েব পৃষ্ঠাগুলি নিয়ন্ত্রণ করতে চায়, যা ডিফল্টরূপে ঘটবে না৷
আপনি যদি নিজেকে এই আচরণটি চান, workbox-core
একটি সহায়ক পদ্ধতি প্রদান করে:
import {clientsClaim} from 'workbox-core';
// This clientsClaim() should be at the top level
// of your service worker, not inside of, e.g.,
// an event handler.
clientsClaim();
workbox-core
-এ clientsClaim()
পদ্ধতি স্বয়ংক্রিয়ভাবে আপনার পরিষেবা কর্মীর সাথে একটি activate
ইভেন্ট লিসেনার যোগ করে এবং এর ভিতরে, self.clients.claim()
কল করে। বর্তমান পরিষেবা কর্মী সক্রিয় হওয়ার আগে self.clients.claim()
কল করলে রানটাইম ব্যতিক্রম হবে এবং workbox-core
-এর র্যাপার আপনি সঠিক সময়ে কল করেছেন তা নিশ্চিত করতে সহায়তা করে।
স্কিপ ওয়েটিং র্যাপারটি বাতিল করা হয়েছে
Workbox v6 এর পূর্বে, ডেভেলপারদেরও workbox-core
থেকে skipWaiting()
পদ্ধতি ব্যবহার করতে উৎসাহিত করা হয়েছিল। যাইহোক, এই পদ্ধতিটি ডেভেলপাররা স্পষ্টভাবে self.skipWaiting()
বললে যা পাবে তার চেয়ে কম মূল্য দেয়।
যেহেতু লিগ্যাসি workbox-core
র্যাপারটি একটি install
ইভেন্ট হ্যান্ডলার নিবন্ধিত করেছে যেখানে self.skipWaiting()
কল করা হয়েছিল, র্যাপারটি আশানুরূপ আচরণ করবে না যদি এটিকে অন্য ইভেন্ট হ্যান্ডলারের ভিতরে ডাকা হয়, যেমন message
, ইনস্টলেশন শেষ হওয়ার পরে।
এই কারণে, workbox-core
-এর skipWaiting()
বন্ধ করা হয়েছে, এবং ডেভেলপারদের সরাসরি self.skipWaiting()
কল করার জন্য স্যুইচ করা উচিত। self.clients.claim()
এর বিপরীতে, self.skipWaiting()
যদি "ভুল" সময়ে কল করা হয় তবে এটি একটি ব্যতিক্রম ছুঁড়বে না, তাই এটিকে একটি ইভেন্ট হ্যান্ডলারে মোড়ানোর দরকার নেই৷
প্রকারভেদ
পরামিতি
রিটার্নস
প্রতিশ্রুতি <void>
CacheDidUpdateCallbackParam
বৈশিষ্ট্য
- cacheName
স্ট্রিং
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- নতুন প্রতিক্রিয়া
প্রতিক্রিয়া
- পুরানো প্রতিক্রিয়া
প্রতিক্রিয়া ঐচ্ছিক
- অনুরোধ
অনুরোধ
- রাষ্ট্র
MapLikeObject ঐচ্ছিক
CachedResponseWillBeUsedCallback()
workbox-core.CachedResponseWillBeUsedCallback(
param: CachedResponseWillBeUsedCallbackParam,
)
পরামিতি
রিটার্নস
প্রতিশ্রুতি <অকার্যকর | প্রতিক্রিয়া>
CachedResponseWillBeUsedCallbackParam
বৈশিষ্ট্য
- cacheName
স্ট্রিং
- ক্যাশড রেসপন্স
প্রতিক্রিয়া ঐচ্ছিক
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- ম্যাচ অপশন
CacheQueryOptions ঐচ্ছিক
- অনুরোধ
অনুরোধ
- রাষ্ট্র
MapLikeObject ঐচ্ছিক
CacheKeyWillBeUsedCallback()
workbox-core.CacheKeyWillBeUsedCallback(
param: CacheKeyWillBeUsedCallbackParam,
)
পরামিতি
রিটার্নস
প্রতিশ্রুতি<স্ট্রিং | অনুরোধ>
CacheKeyWillBeUsedCallbackParam
বৈশিষ্ট্য
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- মোড
স্ট্রিং
- params
যে কোন ঐচ্ছিক
- অনুরোধ
অনুরোধ
- রাষ্ট্র
MapLikeObject ঐচ্ছিক
CacheWillUpdateCallback()
workbox-core.CacheWillUpdateCallback(
param: CacheWillUpdateCallbackParam,
)
পরামিতি
রিটার্নস
প্রতিশ্রুতি <অকার্যকর | প্রতিক্রিয়া>
CacheWillUpdateCallbackParam
বৈশিষ্ট্য
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- অনুরোধ
অনুরোধ
- প্রতিক্রিয়া
প্রতিক্রিয়া
- রাষ্ট্র
MapLikeObject ঐচ্ছিক
পরামিতি
রিটার্নস
প্রতিশ্রুতি <void>
FetchDidFailCallbackParam
বৈশিষ্ট্য
- ত্রুটি
ত্রুটি
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- মূল অনুরোধ
অনুরোধ
- অনুরোধ
অনুরোধ
- রাষ্ট্র
MapLikeObject ঐচ্ছিক
FetchDidSucceedCallback()
workbox-core.FetchDidSucceedCallback(
param: FetchDidSucceedCallbackParam,
)
পরামিতি
রিটার্নস
প্রতিশ্রুতি <প্রতিক্রিয়া>
FetchDidSucceedCallbackParam
বৈশিষ্ট্য
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- অনুরোধ
অনুরোধ
- প্রতিক্রিয়া
প্রতিক্রিয়া
- রাষ্ট্র
MapLikeObject ঐচ্ছিক
HandlerCallbackOptions
HandlerDidCompleteCallback()
workbox-core.HandlerDidCompleteCallback(
param: HandlerDidCompleteCallbackParam,
)
পরামিতি
রিটার্নস
প্রতিশ্রুতি <void>
HandlerDidCompleteCallbackParam
বৈশিষ্ট্য
- ত্রুটি
ত্রুটি ঐচ্ছিক
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- অনুরোধ
অনুরোধ
- প্রতিক্রিয়া
প্রতিক্রিয়া ঐচ্ছিক
- রাষ্ট্র
MapLikeObject ঐচ্ছিক
HandlerDidErrorCallback()
workbox-core.HandlerDidErrorCallback(
param: HandlerDidErrorCallbackParam,
)
পরামিতি
রিটার্নস
প্রতিশ্রুতি <প্রতিক্রিয়া>
HandlerDidErrorCallbackParam
বৈশিষ্ট্য
- ত্রুটি
ত্রুটি
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- অনুরোধ
অনুরোধ
- রাষ্ট্র
MapLikeObject ঐচ্ছিক
HandlerDidRespondCallback()
workbox-core.HandlerDidRespondCallback(
param: HandlerDidRespondCallbackParam,
)
পরামিতি
রিটার্নস
প্রতিশ্রুতি <void>
HandlerDidRespondCallbackParam
বৈশিষ্ট্য
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- অনুরোধ
অনুরোধ
- প্রতিক্রিয়া
প্রতিক্রিয়া ঐচ্ছিক
- রাষ্ট্র
MapLikeObject ঐচ্ছিক
HandlerWillRespondCallback()
workbox-core.HandlerWillRespondCallback(
param: HandlerWillRespondCallbackParam,
)
পরামিতি
রিটার্নস
প্রতিশ্রুতি <প্রতিক্রিয়া>
HandlerWillRespondCallbackParam
বৈশিষ্ট্য
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- অনুরোধ
অনুরোধ
- প্রতিক্রিয়া
প্রতিক্রিয়া
- রাষ্ট্র
MapLikeObject ঐচ্ছিক
HandlerWillStartCallback()
workbox-core.HandlerWillStartCallback(
param: HandlerWillStartCallbackParam,
)
পরামিতি
রিটার্নস
প্রতিশ্রুতি <void>
HandlerWillStartCallbackParam
বৈশিষ্ট্য
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- অনুরোধ
অনুরোধ
- রাষ্ট্র
MapLikeObject ঐচ্ছিক
ManualHandlerCallback()
workbox-core.ManualHandlerCallback(
options: ManualHandlerCallbackOptions,
)
যখনই একটি Router
তার RouteMatchCallback
মাধ্যমে একটি Route
সাথে একটি URL/অনুরোধের সাথে মেলে তখনই "হ্যান্ডলার" কলব্যাক আহ্বান করা হয়। এই হ্যান্ডলার কলব্যাক একটি Promise
প্রদান করা উচিত যা একটি Response
সহ সমাধান করে।
যদি একটি অ-খালি অ্যারে বা অবজেক্ট RouteMatchCallback
দ্বারা ফেরত দেওয়া হয় তবে এটি এই হ্যান্ডলারের options.params
আর্গুমেন্ট হিসাবে পাস করা হবে।
পরামিতি
- বিকল্প
রিটার্নস
প্রতিশ্রুতি <প্রতিক্রিয়া>
ManualHandlerCallbackOptions
একটি ManualHandlerCallback
ফাংশনে পাস করা বিকল্পগুলি।
বৈশিষ্ট্য
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- অনুরোধ
স্ট্রিং | অনুরোধ
MapLikeObject
PluginState
আপাতত একটি প্লেইন MapLikeObject
ব্যবহার করা হচ্ছে, কিন্তু ভবিষ্যতে এটিকে প্রসারিত/স��মাবদ্ধ করতে পারে।
টাইপ
RequestWillFetchCallback()
workbox-core.RequestWillFetchCallback(
param: RequestWillFetchCallbackParam,
)
পরামিতি
রিটার্নস
প্রতিশ্রুতি <অনুরোধ>
RequestWillFetchCallbackParam
বৈশিষ্ট্য
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- অনুরোধ
অনুরোধ
- রাষ্ট্র
MapLikeObject ঐচ্ছিক
RouteHandler
হয় একটি RouteHandlerCallback
বা একটি RouteHandlerObject
। workbox-routing
এর বেশিরভাগ API যেগুলি রুট হ্যান্ডলারগুলিকে গ্রহণ করে তা গ্রহণ করে।
RouteHandlerCallback()
workbox-core.RouteHandlerCallback(
options: RouteHandlerCallbackOptions,
)
যখনই একটি Router
তার RouteMatchCallback
মাধ্যমে একটি Route
সাথে একটি URL/অনুরোধের সাথে মেলে তখনই "হ্যান্ডলার" কলব্যাক আহ্বান করা হয়। এই হ্যান্ডলার কলব্যাক একটি Promise
প্রদান করা উচিত যা একটি Response
সহ সমাধান করে।
যদি একটি অ-খালি অ্যারে বা অবজেক্ট RouteMatchCallback
দ্বারা ফেরত দেওয়া হয় তবে এটি এই হ্যান্ডলারের options.params
আর্গুমেন্ট হিসাবে পাস করা হবে।
পরামিতি
- বিকল্প
রিটার্নস
প্রতিশ্রুতি <প্রতিক্রিয়া>
RouteHandlerCallbackOptions
একটি RouteHandlerCallback
ফাংশনে পাস করা বিকল্পগুলি।
বৈশিষ্ট্য
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- params
স্ট্রিং[] | MapLikeObject ঐচ্ছিক
- অনুরোধ
অনুরোধ
- url
URL
RouteHandlerObject
RouteHandlerCallback
টাইপের একটি handle
পদ্ধতি সহ একটি বস্তু।
একটি Route
অবজেক্ট একটি RouteHandlerCallback
ফাংশন বা এই RouteHandler
অবজেক্ট দিয়ে তৈরি করা যেতে পারে। RouteHandler
সুবিধা হল এটি বাড়ানো যেতে পারে (যেমন workbox-strategies
প্যাকেজ দ্বারা করা হয়)।
বৈশিষ্ট্য
- হ্যান্ডেল
RouteMatchCallback()
workbox-core.RouteMatchCallback(
options: RouteMatchCallbackOptions,
)
একটি Route
একটি নির্দিষ্ট URL এবং অনুরোধের জন্য আবেদন করা উচিত কিনা তা নির্ধারণ করতে "ম্যাচ" কলব্যাক ব্যবহার করা হয়। ক্লায়েন্ট থেকে একটি ইভেন্ট আনার প্রতিক্রিয়া হিসাবে যখন ম্যাচিং ঘটে, তখন event
অবজেক্টটিও সরবরাহ করা হয়। যাইহোক, যেহেতু ম্যাচ কলব্যাক একটি ফেচ ইভেন্টের বাইরে আহ্বান করা যেতে পারে, তাই ম্যাচিং লজিক event
অবজেক্টটি সর্বদা উপলব্ধ থাকবে বলে অনুমান করা উচিত নয়। যদি মিল কলব্যাক একটি সত্য মান প্রদান করে, তাহলে মিলিত রুটের RouteHandlerCallback
অবিলম্বে আহ্বান করা হবে। যদি প্রত্যাবর্তিত মানটি একটি অ-খালি অ্যারে বা বস্তু হয়, তবে সেই মানটি হ্যান্ডলারের options.params
আর্গুমেন্টে সেট করা হবে।
পরামিতি
- বিকল্প
রিটার্নস
যেকোনো
RouteMatchCallbackOptions
একটি RouteMatchCallback
ফাংশনে পাস করা বিকল্পগুলি৷
বৈশিষ্ট্য
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- অনুরোধ
অনুরোধ
- sameOrigin
বুলিয়ান
- url
URL
WorkboxPlugin
আনয়ন এবং ক্যাশে অপারেশনের জন্য ঐচ্ছিক জীবনচক্র কলব্যাক বৈশিষ্ট্য সহ একটি বস্তু৷
বৈশিষ্ট্য
- cacheDidUpdate
CacheDidUpdateCallback ঐচ্ছিক
- cacheKeyWillBeUsed
CacheKeyWillBeUsedCallback ঐচ্ছিক
- cacheWillUpdate
CacheWillUpdateCallback ঐচ্ছিক
- cachedResponseWillBeUsed
- fetchDidFail
FetchDidFailCallback ঐচ্ছিক
- fetchDidSucceed
FetchDidSucceedCallback ঐচ্ছিক
- handlerDidComplete
HandlerDidCompleteCallback ঐচ্ছিক
- handlerDidError
HandlerDidErrorCallback ঐচ্ছিক
- handlerDidRespond
HandlerDidRespondCallback ঐচ্ছিক
- হ্যান্ডলার উইল রেসপন্ড
HandlerWillRespondCallback ঐচ্ছিক
- হ্যান্ডলার উইলস্টার্ট
HandlerWillStartCallback ঐচ্ছিক
- অনুরোধ উইলফেচ
RequestWillFetchCallback ঐচ্ছিক
WorkboxPluginCallbackParam
বৈশিষ্ট্য
- cacheDidUpdate
- cacheKeyWillBeUsed
- cacheWillUpdate
- cachedResponseWillBeUsed
- fetchDidFail
- fetchDidSucceed
- handlerDidComplete
- handlerDidError
- handlerDidRespond
- হ্যান্ডলার উইল রেসপন্ড
- হ্যান্ডলার উইলস্টার্ট
- অনুরোধ উইলফেচ
বৈশিষ্ট্য
cacheNames
ওয়ার্কবক্স দ্বারা ব্যবহৃত বর্তমান ক্যাশে নাম এবং উপসর্গ/প্রত্যয় পান।
cacheNames.precache
প্রিক্যাচ করা সম্পদের জন্য ব্যবহার করা হয়, cacheNames.googleAnalytics
analytics.js
সঞ্চয় করার জন্য workbox-google-analytics
ব্যবহার করে, এবং cacheNames.runtime
অন্য সব কিছুর জন্য ব্যবহার করা হয়।
cacheNames.prefix
শুধুমাত্র বর্তমান উপসর্গ মান পুনরুদ্ধার করতে ব্যবহার করা যেতে পারে। cacheNames.suffix
শুধুমাত্র বর্তমান প্রত্যয় মান পুনরুদ্ধার করতে ব্যবহার করা যেতে পারে।
টাইপ
বস্তু
বৈশিষ্ট্য
- googleAnalytics
স্ট্রিং
- precache
স্ট্রিং
- উপসর্গ
স্ট্রিং
- রানটাইম
স্ট্রিং
- প্রত্যয়
স্ট্রিং
পদ্ধতি
clientsClaim()
workbox-core.clientsClaim()
পরিষেবা কর্মী সক্রিয় হয়ে গেলে বর্তমানে উপলব্ধ যেকোনো ক্লায়েন্টদের দাবি করুন। এটি সাধারণত skipWaiting()
এর সাথে ব্যবহার করা হয়।
copyResponse()
workbox-core.copyResponse(
response: Response,
modifier?: function,
)
বিকাশকারীদের একটি প্রতিক্রিয়া অনুলিপি করতে এবং এর headers
, status
, বা statusText
মানগুলি সংশোধন করার অনুমতি দেয় (মানগুলি একটি [ ResponseInit
] https://developer.mozilla.org/en-US/docs/Web/API/Response/Response#Syntax
এর মাধ্যমে সেট করা যায় কনস্ট্রাক্টরে অবজেক্ট)। এই মানগুলি পরিবর্তন করতে, দ্বিতীয় যুক্তি হিসাবে একটি ফাংশন পাস করুন। সেই ফাংশনটি একটি একক অবজেক্টের সাথে প্রতিক্রিয়া বৈশিষ্ট্য সহ আহ্বান করা হবে {headers, status, statusText}
। এই ফাংশনের রিটার্ন মানটি নতুন Response
জন্য ResponseInit
হিসাবে ব্যবহার করা হবে। মান পরিবর্তন করতে হয় পাস করা প্যারামিটার(গুলি) সংশোধন করুন এবং এটি ফেরত দিন, অথবা একটি সম্পূর্ণ নতুন বস্তু ফেরত দিন।
এই পদ্ধতিটি ইচ্ছাকৃতভাবে একই-উৎস প্রতিক্রিয়ার মধ্যে সীমাবদ্ধ, তা নির্বিশেষে CORS ব্যবহার করা হয়েছে কিনা।
পরামিতি
- প্রতিক্রিয়া
প্রতিক্রিয়া
- সংশোধক
ফাংশন ঐচ্ছিক
modifier
পরামিতি এর মত দেখাচ্ছে:(responseInit: ResponseInit) => ResponseInit
- responseInit
ResponseInit
- রিটার্ন
ResponseInit
রিটার্নস
প্রতিশ্রুতি <প্রতিক্রিয়া>
registerQuotaErrorCallback()
workbox-core.registerQuotaErrorCallback(
callback: Function,
)
quotaErrorCallbacks-এর সেটে একটি ফাংশন যোগ করে যা কোটা ত্রুটি থাকলে কার্যকর করা হবে।
পরামিতি
- কলব্যাক
ফাংশন
setCacheNameDetails()
workbox-core.setCacheNameDetails(
details: PartialCacheNameDetails,
)
ওয়ার্কবক্স প্যাকেজ দ্বারা ব্যবহৃত ডিফল্ট ক্যাশে নাম পরিবর্তন করে। ক্যাশে নামগুলি <prefix>-<Cache Name>-<suffix>
হিসাবে তৈরি হয়।
পরামিতি
- বিস্তারিত
আংশিক ক্যাচে নামের বিশদ বিবরণ
skipWaiting()
workbox-core.skipWaiting()
এই পদ্ধতিটি বাতিল করা হয়েছে এবং ওয়ার্কবক্স v7 এ সরানো হবে।
self.skipWaiting() কল করা সমতুল্য, এবং এর পরিবর্তে ব্যবহার করা উচিত।