যখন পরিষেবা কর্মীদের প্রথম চালু করা হয়েছিল, তখন সাধারণ ক্যাশিং কৌশলগুলির একটি সেট আবির্ভূত হয়েছিল। একটি ক্যাশিং কৌশল হল একটি প্যাটার্ন যা নির্ধারণ করে যে কীভাবে একজন পরিষেবা কর্মী একটি ফেচ ইভেন্ট পাওয়ার পরে একটি প্রতিক্রিয়া তৈরি করে।
workbox-strategies
সবচেয়ে সাধারণ ক্যাশিং কৌশলগুলি প্রদান করে তাই আপনার পরিষেবা কর্মীতে সেগুলি প্রয়োগ করা সহজ।
ওয়ার্কবক্স দ্বারা সমর্থিত কৌশলগুলির বাইরে আমরা খুব বেশি বিশদে যাব না, তবে আপনি অফলাইন কুকবুকে আরও শিখতে পারেন৷
কৌশল ব্যবহার
নিম্নলিখিত উদাহরণগুলিতে, আমরা আপনাকে দেখাব কিভাবে workbox-routing
এর সাথে ওয়ার্কবক্স ক্যাশিং কৌশলগুলি ব্যবহার করতে হয়। এই ডকের কনফিগারিং কৌশল বিভাগে কভার করা প্রতিটি কৌশলের সাথে আপনি সংজ্ঞায়িত করতে পারেন এমন কিছু বিকল্প রয়েছে।
অ্যাডভান্সড ইউসেজ বিভাগে , আপনি কীভাবে workbox-routing
ছাড়াই সরাসরি ক্যাশিং কৌশলগুলি ব্যবহার করতে পারেন তা আমরা কভার করব।
Stale-While-Revalidate
stale-while-revalidate প্যাটার্ন আপনাকে অনুরোধের যত তাড়াতাড়ি সম্ভব সাড়া দিতে দেয় যদি উপলব্ধ থাকে তাহলে ক্যাশ করা রেসপন্স দিয়ে, নেটওয়ার্ক রিকোয়েস্টের কাছে ফিরে আসা যদি ক্যাশে না থাকে। নেটওয়ার্ক অনুরোধ তারপর ক্যাশে আপডেট করতে ব্যবহার করা হয়. stale-while-revalidate-এর কিছু বাস্তবায়নের বিপরীতে, এই কৌশলটি ক্যাশ করা প্রতিক্রিয়ার বয়স নির্বিশেষে সর্বদা একটি পুনর্বিবেচনার অনুরোধ করবে।
এটি একটি মোটামুটি সাধারণ কৌশল যেখানে সর্বাধিক আপ-টু-ডেট সংস্থান থাকা অ্যাপ্লিকেশনের জন্য গুরুত্বপূর্ণ নয়।
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());
নেটওয়ার্ক প্রথম (নেটওয়ার্ক ক্যাশে ফিরে আসা)
ঘন ঘন আপডেট করা অনুরোধগুলির জন্য, নেটওয়ার্ক প্রথম কৌশল হল আদর্শ সমাধান। ডিফল্টরূপে, এটি নেটওয়ার্ক থেকে সর্বশেষ প্রতিক্রিয়া আনার চেষ্টা করবে৷ অনুরোধ সফল হলে, এটি ক্যাশে প্রতিক্রিয়া রাখবে। নেটওয়ার্ক কোনো প্রতিক্রিয়া ফেরাতে ব্যর্থ হলে, ক্যাশে করা প্রতিক্রিয়া ব্যবহার করা হবে।
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-cacheable-response
- ওয়ার্কবক্স- মেয়াদোত্তীর্ণ
- 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-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);
}
}
লক্ষ্য করুন কিভাবে handler.fetch()
নেটিভ fetch
পদ্ধতির পরিবর্তে কল করা হয়। StrategyHandler
ক্লাস অনেকগুলি আনয়ন এবং ক্যাশে অ্যাকশন সরবরাহ করে যা যখনই handle()
বা handleAll()
ব্যবহার করা হয় তখন ব্যবহার করা যেতে পারে:
-
fetch
: একটি প্রদত্ত অনুরোধ আনয়ন করে, এবংrequestWillFetch()
,fetchDidSucceed()
, এবংfetchDidFail()
প্লাগইন লাইফসাইকেল পদ্ধতিগুলি আহ্বান করে -
cacheMatch
: ক্যাশে থেকে একটি অনুরোধ মেলে, এবংcacheKeyWillBeUsed()
এবংcachedResponseWillBeUsed()
প্লাগইন লাইফসাইকেল পদ্ধতিগুলিকে আহ্বান করে -
cachePut
: ক্যাশে একটি অনুরোধ/প্রতিক্রিয়া জোড়া রাখে এবংcacheKeyWillBeUsed()
,cacheWillUpdate()
, এবংcacheDidUpdate()
প্লাগইন লাইফসাইকেল পদ্ধতিগুলিকে আহ্বান করে -
fetchAndCachePut
:fetch()
কল করে এবংfetch()
দ্বারা উত্পন্ন প্রতিক্রিয়ার পটভূমিতেcachePut()
চালায়। -
hasCallback
: ইনপুট হিসাবে একটি কলব্যাক নেয় এবং প্রদত্ত কলব্যাকের সাথে কৌশলটিতে কমপক্ষে একটি প্লাগইন থাকলে সত্য ফেরত দেয়। -
runCallbacks
: একটি প্রদত্ত নামের সাথে মিলে যাওয়া সমস্ত প্লাগইন কলব্যাক চালায়, ক্রমানুসারে, একটি প্রদত্ত প্যারাম অবজেক্টকে (বর্তমান প্লাগইন অবস্থার সাথে মার্জ করা) একমাত্র যুক্তি হিসাবে। -
iterateCallbacks
: একটি কলব্যাক গ্রহন করে এবং প্লাগইন কলব্যাকের সাথে মিলে যাওয়া একটি পুনরাবৃত্তিযোগ্য ফেরত দেয়, যেখানে প্রতিটি কলব্যাক বর্তমান হ্যান্ডলার অবস্থার সাথে মোড়ানো থাকে (অর্থাৎ আপনি যখন প্রতিটি কলব্যাক কল করেন, আপনি যে বস্তুর প্যারামিটারটি পাস করেন তা প্লাগইনটির বর্তমান অবস্থার সাথে একত্রিত হবে)। -
waitUntil
: অনুরোধ হ্যান্ডেল করা (সাধারণত একটিFetchEvent
) এর সাথে যুক্ত ইভেন্টের আজীবন প্রতিশ্রুতিতে একটি প্রতিশ্রুতি যোগ করে। -
doneWaiting
: একটি প্রতিশ্রুতি ফেরত দেয় যাwaitUntil()
এ পাস করা সমস্ত প্রতিশ্রুতি নিষ্পত্তি হয়ে গেলে সমাধান করে। -
destroy
: কৌশলটি চালানো বন্ধ করে এবং অবিলম্বে কোনো মুলতুবিwaitUntil()
প্রতিশ্রুতির সমাধান করে।
কাস্টম ক্যাশে নেটওয়ার্ক রেস কৌশল
নিম্নলিখিত উদাহরণটি অফলাইন কুকবুক (যা ওয়ার্কবক্স প্রদান করে না) থেকে ক্যাশে-নেটওয়ার্ক-রেসের উপর ভিত্তি করে তৈরি করা হয়েছে, তবে আরও এক ধাপ এগিয়ে একটি সফল নেটওয়ার্ক অনুরোধের পরে সর্বদা ক্যাশে আপডেট করে। এটি একটি আরও জটিল কৌশলের উদাহরণ যা একাধিক ক্রিয়া ব্যবহার করে।
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);
}
}
);
});
}
}
উন্নত ব্যবহার
আপনি যদি আপনার নিজের ইভেন্ট লজিকে কৌশলগুলি ব্যবহার করতে চান তবে আপনি একটি নির্দিষ্ট কৌশলের মাধ্যমে একটি অনুরোধ চালানোর জন্য কৌশল ক্লাসগুলি ব্যবহার করতে পারেন।
উদাহরণস্বরূপ, stale-while-revalidate কৌশলটি ব্যবহার করতে, আপনি নিম্নলিখিতগুলি করতে পারেন:
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}));
}
});
আপনি ওয়ার্কবক্স-কৌশল রেফারেন্স ডক্সে উপলব্ধ ক্লাসের তালিকা খুঁজে পেতে পারেন।
প্রকারভেদ
CacheFirst
একটি ক্যাশে-প্রথম অনুরোধ কৌশল বাস্তবায়ন।
একটি ক্যাশে ফার্স্ট স্ট্র্যাটেজি পরিমার্জিত সম্পদের জন্য উপযোগী, যেমন /styles/example.a8f5f1.css
এর মতো ইউআরএল, যেহেতু সেগুলি দীর্ঘ সময়ের জন্য ক্যাশে করা যায়।
নেটওয়ার্ক অনুরোধ ব্যর্থ হলে, এবং কোন ক্যাশে মিল না থাকলে, এটি একটি WorkboxError
ব্যতিক্রম নিক্ষেপ করবে।
বৈশিষ্ট্য
- নির্মাণকারী
অকার্যকর
কৌশলটির একটি নতুন উদাহরণ তৈরি করে এবং সমস্ত নথিভুক্ত বিকল্প বৈশিষ্ট্যগুলিকে পাবলিক ইনস্ট্যান্স বৈশিষ্ট্য হিসাবে সেট করে।
দ্রষ্টব্য: যদি একটি কাস্টম কৌশল ক্লাস বেস স্ট্র্যাটেজি ক্লাস প্রসারিত করে এবং এই বৈশিষ্ট্যগুলির চেয়ে বেশি প্রয়োজন না হয়, তবে এটির নিজস্ব কনস্ট্রাক্টর সংজ্ঞায়িত করার প্রয়োজন নেই।
constructor
ফাংশনটি এর মত দেখাচ্ছে:(options?: StrategyOptions) => {...}
- বিকল্প
কৌশল বিকল্প ঐচ্ছিক
- রিটার্ন
- cacheName
স্ট্রিং
- ফেচ অপশন
RequestInit ঐচ্ছিক
- ম্যাচ অপশন
CacheQueryOptions ঐচ্ছিক
- প্লাগইন
- _অপেক্ষা সম্পূর্ণ
অকার্যকর
_awaitComplete
ফাংশনটি এরকম দেখাচ্ছে:(responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
- প্রতিক্রিয়া সম্পন্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- হ্যান্ডলার
- অনুরোধ
অনুরোধ
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- রিটার্ন
প্রতিশ্রুতি <void>
- রেসপন্স পান
অকার্যকর
_getResponse
ফাংশনটি এরকম দেখাচ্ছে:(handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
- হ্যান্ডলার
- অনুরোধ
অনুরোধ
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- হ্যান্ডেল
অকার্যকর
একটি অনুরোধ কৌশল সম্পাদন করুন এবং একটি
Promise
প্রদান করুন যা একটিResponse
সাথে সমাধান করবে, সমস্ত প্রাসঙ্গিক প্লাগইন কলব্যাকগুলিকে আহ্বান করে৷যখন একটি কৌশল উদাহরণ ওয়ার্কবক্স
workbox-routing.Route
এর সাথে নিবন্ধিত হয়। রুটটি মেলে এই পদ্ধতিটি স্বয়ংক্রিয়ভাবে কল করা হয়।বিকল্পভাবে, এই পদ্ধতিটি
event.respondWith()
এ পাস করে একটি স্বতন্ত্রFetchEvent
শ্রোতাদের মধ্যে ব্যবহার করা যেতে পারে।handle
ফাংশন এর মত দেখাচ্ছে:(options: FetchEvent | HandlerCallbackOptions) => {...}
- বিকল্প
ফেচ ইভেন্ট | হ্যান্ডলার কলব্যাক অপশন
একটি
FetchEvent
বা নীচে তালিকাভুক্ত বৈশিষ্ট্য সহ একটি বস্তু৷
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- সব হ্যান্ডেল
অকার্যকর
workbox-strategies.Strategy~handle
মতই, কিন্তু শুধুমাত্র একটিPromise
ফেরত দেওয়ার পরিবর্তে যা একটিResponse
প্রতিশ্রুতি দেয় এটি একটি[response, done]
প্রতিশ্রুতি প্রদান করবে, যেখানে পূর্বের (response
)handle()
ফেরত দেওয়ার সমতুল্য। , এবং পরেরটি হল একটি প্রতিশ্রুতি যা কৌশলটি সম্পাদনের অংশ হিসাবেevent.waitUntil()
এ যোগ করা যেকোনো প্রতিশ্রুতি সম্পূর্ণ হয়ে গেলে সমাধান হবে।কৌশল দ্বারা সম্পাদিত অতিরিক্ত কাজ (সাধারণত ক্যাশিং প্রতিক্রিয়া) সফলভাবে সম্পন্ন হয় তা নিশ্চিত করার জন্য আপনি
done
প্রতিশ্রুতির জন্য অপেক্ষা করতে পারেন।handleAll
ফাংশনটি এরকম দেখাচ্ছে:(options: FetchEvent | HandlerCallbackOptions) => {...}
- বিকল্প
ফেচ ইভেন্ট | হ্যান্ডলার কলব্যাক অপশন
একটি
FetchEvent
বা নীচে তালিকাভুক্ত বৈশিষ্ট্য সহ একটি বস্তু৷
- রিটার্ন
[প্রতিশ্রুতি<প্রতিক্রিয়া>, প্রতিশ্রুতি<void>]
[প্রতিক্রিয়া, সম্পন্ন] প্রতিশ্রুতির একটি টুপল যা প্রতিক্রিয়া কখন সমাধান হয় এবং হ্যান্ডলার তার সমস্ত কাজ শেষ করে তা নির্ধারণ করতে ব্যবহার করা যেতে পারে।
CacheOnly
একটি ক্যাশে শুধুমাত্র অনুরোধ কৌশল একটি বাস্তবায়ন.
আপনি যদি কোন ওয়ার্কবক্স প্লাগইনগুলির সুবিধা নিতে চান তবে এই ক্লাসটি দরকারী৷
যদি কোন ক্যাশে মিল না থাকে, তাহলে এটি একটি WorkboxError
ব্যতিক্রম নিক্ষেপ করবে।
বৈশিষ্ট্য
- নির্মাণকারী
অকার্যকর
কৌশলটির একটি নতুন উদাহরণ তৈরি করে এবং সমস্ত নথিভুক্ত বিকল্প বৈশিষ্ট্যগুলিকে পাবলিক ইনস্ট্যান্স বৈশিষ্ট্য হিসাবে সেট করে।
দ্রষ্টব্য: যদি একটি কাস্টম কৌশল ক্লাস বেস স্ট্র্যাটেজি ক্লাস প্রসারিত করে এবং এই বৈশিষ্ট্যগুলির চেয়ে বেশি প্রয়োজন না হয়, তবে এটির নিজস্ব কনস্ট্রাক্টর সংজ্ঞায়িত করার প্রয়োজন নেই।
constructor
ফাংশনটি এর মত দেখাচ্ছে:(options?: StrategyOptions) => {...}
- বিকল্প
কৌশল বিকল্প ঐচ্ছিক
- রিটার্ন
- cacheName
স্ট্রিং
- ফেচ অপশন
RequestInit ঐচ্ছিক
- ম্যাচ অপশন
CacheQueryOptions ঐচ্ছিক
- প্লাগইন
- _অপেক্ষা সম্পূর্ণ
অকার্যকর
_awaitComplete
ফাংশনটি এরকম দেখাচ্ছে:(responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
- প্রতিক্রিয়া সম্পন্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- হ্যান্ডলার
- অনুরোধ
অনুরোধ
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- রিটার্ন
প্রতিশ্রুতি <void>
- রেসপন্স পান
অকার্যকর
_getResponse
ফাংশনটি এরকম দেখাচ্ছে:(handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
- হ্যান্ডলার
- অনুরোধ
অনুরোধ
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- হ্যান্ডেল
অকার্যকর
একটি অনুরোধ কৌশল সম্পাদন করুন এবং একটি
Promise
প্রদান করুন যা একটিResponse
সাথে সমাধান করবে, সমস্ত প্রাসঙ্গিক প্লাগইন কলব্যাকগুলিকে আহ্বান করে৷যখন একটি কৌশল উদাহরণ ওয়ার্কবক্স
workbox-routing.Route
এর সাথে নিবন্ধিত হয়। রুটটি মেলে এই পদ্ধতিটি স্বয়ংক্রিয়ভাবে কল করা হয়।বিকল্পভাবে, এই পদ্ধতিটি
event.respondWith()
এ পাস করে একটি স্বতন্ত্রFetchEvent
শ্রোতাদের মধ্যে ব্যবহার করা যেতে পারে।handle
ফাংশন এর মত দেখাচ্ছে:(options: FetchEvent | HandlerCallbackOptions) => {...}
- বিকল্প
ফেচ ইভেন্ট | হ্যান্ডলার কলব্যাক অপশন
একটি
FetchEvent
বা নীচে তালিকাভুক্ত বৈশিষ্ট্য সহ একটি বস্তু৷
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- সব হ্যান্ডেল
অকার্যকর
workbox-strategies.Strategy~handle
মতই, কিন্তু শুধুমাত্র একটিPromise
ফেরত দেওয়ার পরিবর্তে যা একটিResponse
প্রতিশ্রুতি দেয় এটি একটি[response, done]
প্রতিশ্রুতি প্রদান করবে, যেখানে পূর্বের (response
)handle()
ফেরত দেওয়ার সমতুল্য। , এবং পরেরটি হল একটি প্রতিশ্রুতি যা কৌশলটি সম্পাদনের অংশ হিসাবেevent.waitUntil()
এ যোগ করা যেকোনো প্রতিশ্রুতি সম্পূর্ণ হয়ে গেলে সমাধান হবে।কৌশল দ্বারা সম্পাদিত অতিরিক্ত কাজ (সাধারণত ক্যাশিং প্রতিক্রিয়া) সফলভাবে সম্পন্ন হয় তা নিশ্চিত করার জন্য আপনি
done
প্রতিশ্রুতির জন্য অপেক্ষা করতে পারেন।handleAll
ফাংশনটি এরকম দেখাচ্ছে:(options: FetchEvent | HandlerCallbackOptions) => {...}
- বিকল্প
ফেচ ইভেন্ট | হ্যান্ডলার কলব্যাক অপশন
একটি
FetchEvent
বা নীচে তালিকাভুক্ত বৈশিষ্ট্য সহ একটি বস্তু৷
- রিটার্ন
[প্রতিশ্রুতি<প্রতিক্রিয়া>, প্রতিশ্রুতি<void>]
[প্রতিক্রিয়া, সম্পন্ন] প্রতিশ্রুতির একটি টুপল যা প্রতিক্রিয়া কখন সমাধান হয় এবং হ্যান্ডলার তার সমস্ত কাজ শেষ করে তা নির্ধারণ করতে ব্যবহার করা যেতে পারে।
NetworkFirst
একটি নেটওয়ার্ক প্রথম অনুরোধ কৌশল একটি বাস্তবায়ন.
ডিফল্টরূপে, এই কৌশলটি একটি 200 স্ট্যাটাস কোডের পাশাপাশি অস্বচ্ছ প্রতিক্রিয়া সহ প্রতিক্রিয়াগুলি ক্যাশে করবে৷ অস্বচ্ছ প্রতিক্রিয়াগুলি হল ক্রস-অরিজিন অনুরোধ যেখানে প্রতিক্রিয়া CORS সমর্থন করে না।
নেটওয়ার্ক অনুরোধ ব্যর্থ হলে, এবং কোন ক্যাশে মিল না থাকলে, এটি একটি WorkboxError
ব্যতিক্রম নিক্ষেপ করবে।
বৈশিষ্ট্য
- নির্মাণকারী
অকার্যকর
constructor
ফাংশনটি এর মত দেখাচ্ছে:(options?: NetworkFirstOptions) => {...}
- বিকল্প
NetworkFirstOptions ঐচ্ছিক
- রিটার্ন
- cacheName
স্ট্রিং
- ফেচ অপশন
RequestInit ঐচ্ছিক
- ম্যাচ অপশন
CacheQueryOptions ঐচ্ছিক
- প্লাগইন
- _অপেক্ষা সম্পূর্ণ
অকার্যকর
_awaitComplete
ফাংশনটি এরকম দেখাচ্ছে:(responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
- প্রতিক্রিয়া সম্পন্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- হ্যান্ডলার
- অনুরোধ
অনুরোধ
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- রিটার্ন
প্রতিশ্রুতি <void>
- রেসপন্স পান
অকার্যকর
_getResponse
ফাংশনটি এরকম দেখাচ্ছে:(handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
- হ্যান্ডলার
- অনুরোধ
অনুরোধ
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- হ্যান্ডেল
অকার্যকর
একটি অনুরোধ কৌশল সম্পাদন করুন এবং একটি
Promise
প্রদান করুন যা একটিResponse
সাথে সমাধান করবে, সমস্ত প্রাসঙ্গিক প্লাগইন কলব্যাকগুলিকে আহ্বান করে৷যখন একটি কৌশল উদাহরণ ওয়ার্কবক্স
workbox-routing.Route
এর সাথে নিবন্ধিত হয়। রুটটি মেলে এই পদ্ধতিটি স্বয়ংক্রিয়ভাবে কল করা হয়।বিকল্পভাবে, এই পদ্ধতিটি
event.respondWith()
এ পাস করে একটি স্বতন্ত্রFetchEvent
শ্রোতাদের মধ্যে ব্যবহার করা যেতে পারে।handle
ফাংশন এর মত দেখাচ্ছে:(options: FetchEvent | HandlerCallbackOptions) => {...}
- বিকল্প
ফেচ ইভেন্ট | হ্যান্ডলার কলব্যাক অপশন
একটি
FetchEvent
বা নীচে তালিকাভুক্ত বৈশিষ্ট্য সহ একটি বস্তু৷
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- সব হ্যান্ডেল
অকার্যকর
workbox-strategies.Strategy~handle
মতই, কিন্তু শুধুমাত্র একটিPromise
ফেরত দেওয়ার পরিবর্তে যা একটিResponse
প্রতিশ্রুতি দেয় এটি একটি[response, done]
প্রতিশ্রুতি প্রদান করবে, যেখানে পূর্বের (response
)handle()
ফেরত দেওয়ার সমতুল্য। , এবং পরেরটি হল একটি প্রতিশ্রুতি যা কৌশলটি সম্পাদনের অংশ হিসাবেevent.waitUntil()
এ যোগ করা যেকোনো প্রতিশ্রুতি সম্পূর্ণ হয়ে গেলে সমাধান হবে।কৌশল দ্বারা সম্পাদিত অতিরিক্ত কাজ (সাধারণত ক্যাশিং প্রতিক্রিয়া) সফলভাবে সম্পন্ন হয় তা নিশ্চিত করার জন্য আপনি
done
প্রতিশ্রুতির জন্য অপেক্ষা করতে পারেন।handleAll
ফাংশনটি এরকম দেখাচ্ছে:(options: FetchEvent | HandlerCallbackOptions) => {...}
- বিকল্প
ফেচ ইভেন্ট | হ্যান্ডলার কলব্যাক অপশন
একটি
FetchEvent
বা নীচে তালিকাভুক্ত বৈশিষ্ট্য সহ একটি বস্তু৷
- রিটার্ন
[প্রতিশ্রুতি<প্রতিক্রিয়া>, প্রতিশ্রুতি<void>]
[প্রতিক্রিয়া, সম্পন্ন] প্রতিশ্রুতির একটি টুপল যা প্রতিক্রিয়া কখন সমাধান হয় এবং হ্যান্ডলার তার সমস্ত কাজ শেষ করে তা নির্ধারণ করতে ব্যবহার করা যেতে পারে।
NetworkFirstOptions
বৈশিষ্ট্য
- cacheName
স্ট্রিং ঐচ্ছিক
- ফেচ অপশন
RequestInit ঐচ্ছিক
- ম্যাচ অপশন
CacheQueryOptions ঐচ্ছিক
- নেটওয়ার্ক টাইমআউট সেকেন্ড
সংখ্যা ঐচ্ছিক
- প্লাগইন
WorkboxPlugin [] ঐচ্ছিক
NetworkOnly
একটি নেটওয়ার্ক-শুধু অনুরোধ কৌশল বাস্তবায়ন।
আপনি যদি কোন ওয়ার্কবক্স প্লাগইনগুলির সুবিধা নিতে চান তবে এই ক্লাসটি দরকারী৷
নেটওয়ার্ক অনুরোধ ব্যর্থ হলে, এটি একটি WorkboxError
ব্যতিক্রম নিক্ষেপ করবে।
বৈশিষ্ট্য
- নির্মাণকারী
অকার্যকর
constructor
ফাংশনটি এর মত দেখাচ্ছে:(options?: NetworkOnlyOptions) => {...}
- বিকল্প
NetworkOnlyOptions ঐচ্ছিক
- রিটার্ন
- cacheName
স্ট্রিং
- ফেচ অপশন
RequestInit ঐচ্ছিক
- ম্যাচ অপশন
CacheQueryOptions ঐচ্ছিক
- প্লাগইন
- _অপেক্ষা সম্পূর্ণ
অকার্যকর
_awaitComplete
ফাংশনটি এরকম দেখাচ্ছে:(responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
- প্রতিক্রিয়া সম্পন্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- হ্যান্ডলার
- অনুরোধ
অনুরোধ
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- রিটার্ন
প্রতিশ্রুতি <void>
- রেসপন্স পান
অকার্যকর
_getResponse
ফাংশনটি এরকম দেখাচ্ছে:(handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
- হ্যান্ডলার
- অনুরোধ
অনুরোধ
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- হ্যান্ডেল
অকার্যকর
একটি অনুরোধ কৌশল সম্পাদন করুন এবং একটি
Promise
প্রদান করুন যা একটিResponse
সাথে সমাধান করবে, সমস্ত প্রাসঙ্গিক প্লাগইন কলব্যাকগুলিকে আহ্বান করে৷যখন একটি কৌশল উদাহরণ ওয়ার্কবক্স
workbox-routing.Route
এর সাথে নিবন্ধিত হয়। রুটটি মেলে এই পদ্ধতিটি স্বয়ংক্রিয়ভাবে কল করা হয়।বিকল্পভাবে, এই পদ্ধতিটি
event.respondWith()
এ পাস করে একটি স্বতন্ত্রFetchEvent
শ্রোতাদের মধ্যে ব্যবহার করা যেতে পারে।handle
ফাংশন এর মত দেখাচ্ছে:(options: FetchEvent | HandlerCallbackOptions) => {...}
- বিকল্প
ফেচ ইভেন্ট | হ্যান্ডলার কলব্যাক অপশন
একটি
FetchEvent
বা নীচে তালিকাভুক্ত বৈশিষ্ট্য সহ একটি বস্তু৷
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- সব হ্যান্ডেল
অকার্যকর
workbox-strategies.Strategy~handle
মতই, কিন্তু শুধুমাত্র একটিPromise
ফেরত দেওয়ার পরিবর্তে যা একটিResponse
প্রতিশ্রুতি দেয় এটি একটি[response, done]
প্রতিশ্রুতি প্রদান করবে, যেখানে পূর্বের (response
)handle()
ফেরত দেওয়ার সমতুল্য। , এবং পরেরটি হল একটি প্রতিশ্রুতি যা কৌশলটি সম্পাদনের অংশ হিসাবেevent.waitUntil()
এ যোগ করা যেকোনো প্রতিশ্রুতি সম্পূর্ণ হয়ে গেলে সমাধান হবে।কৌশল দ্বারা সম্পাদিত অতিরিক্ত কাজ (সাধারণত ক্যাশিং প্রতিক্রিয়া) সফলভাবে সম্পন্ন হয় তা নিশ্চিত করার জন্য আপনি
done
প্রতিশ্রুতির জন্য অপেক্ষা করতে পারেন।handleAll
ফাংশনটি এরকম দেখাচ্ছে:(options: FetchEvent | HandlerCallbackOptions) => {...}
- বিকল্প
ফেচ ইভেন্ট | হ্যান্ডলার কলব্যাক অপশন
একটি
FetchEvent
বা নীচে তালিকাভুক্ত বৈশিষ্ট্য সহ একটি বস্তু৷
- রিটার্ন
[প্রতিশ্রুতি<প্রতিক্রিয়া>, প্রতিশ্রুতি<void>]
[প্রতিক্রিয়া, সম্পন্ন] প্রতিশ্রুতির একটি টুপল যা প্রতিক্রিয়া কখন সমাধান হয় এবং হ্যান্ডলার তার সমস্ত কাজ শেষ করে তা নির্ধারণ করতে ব্যবহার করা যেতে পারে।
NetworkOnlyOptions
বৈশিষ্ট্য
- ফেচ অপশন
RequestInit ঐচ্ছিক
- নেটওয়ার্ক টাইমআউট সেকেন্ড
সংখ্যা ঐচ্ছিক
- প্লাগইন
WorkboxPlugin [] ঐচ্ছিক
StaleWhileRevalidate
একটি বাসি-যখন-পুনঃপ্রমাণ অনুরোধ কৌশলের বাস্তবায়ন।
সমান্তরালভাবে ক্যাশে এবং নেটওয়ার্ক উভয় থেকে সম্পদের অনুরোধ করা হয়। কৌশলটি উপলব্ধ হলে ক্যাশে করা সংস্করণের সাথে প্রতিক্রিয়া জানাবে, অন্যথায় নেটওয়ার্ক প্রতিক্রিয়ার জন্য অপেক্ষা করুন৷ প্রতিটি সফল অনুরোধের সাথে নেটওয়ার্ক প্রতিক্রিয়া সহ ক্যাশে আপডেট করা হয়।
ডিফল্টরূপে, এই কৌশলটি একটি 200 স্ট্যাটাস কোডের পাশাপাশি অস্বচ্ছ প্রতিক্রিয়া সহ প্রতিক্রিয়াগুলি ক্যাশে করবে৷ অস্বচ্ছ প্রতিক্রিয়া হল ক্রস-অরিজিন অনুরোধ যেখানে প্রতিক্রিয়া CORS সমর্থন করে না।
নেটওয়ার্ক অনুরোধ ব্যর্থ হলে, এবং কোন ক্যাশে মিল না থাকলে, এটি একটি WorkboxError
ব্যতিক্রম নিক্ষেপ করবে।
বৈশিষ্ট্য
- নির্মাণকারী
অকার্যকর
constructor
ফাংশনটি এর মত দেখাচ্ছে:(options?: StrategyOptions) => {...}
- বিকল্প
কৌশল বিকল্প ঐচ্ছিক
- রিটার্ন
- cacheName
স্ট্রিং
- ফেচ অপশন
RequestInit ঐচ্ছিক
- ম্যাচ অপশন
CacheQueryOptions ঐচ্ছিক
- প্লাগইন
- _অপেক্ষা সম্পূর্ণ
অকার্যকর
_awaitComplete
ফাংশনটি এরকম দেখাচ্ছে:(responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
- প্রতিক্রিয়া সম্পন্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- হ্যান্ডলার
- অনুরোধ
অনুরোধ
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- রিটার্ন
প্রতিশ্রুতি <void>
- রেসপন্স পান
অকার্যকর
_getResponse
ফাংশনটি এরকম দেখাচ্ছে:(handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
- হ্যান্ডলার
- অনুরোধ
অনুরোধ
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- হ্যান্ডেল
অকার্যকর
একটি অনুরোধ কৌশল সম্পাদন করুন এবং একটি
Promise
প্রদান করুন যা একটিResponse
সাথে সমাধান করবে, সমস্ত প্রাসঙ্গিক প্লাগইন কলব্যাকগুলিকে আহ্বান করে৷যখন একটি কৌশল উদাহরণ ওয়ার্কবক্স
workbox-routing.Route
এর সাথে নিবন্ধিত হয়। রুটটি মেলে এই পদ্ধতিটি স্বয়ংক্রিয়ভাবে কল করা হয়।বিকল্পভাবে, এই পদ্ধতিটি
event.respondWith()
এ পাস করে একটি স্বতন্ত্রFetchEvent
শ্রোতাদের মধ্যে ব্যবহার করা যেতে পারে।handle
ফাংশন এর মত দেখাচ্ছে:(options: FetchEvent | HandlerCallbackOptions) => {...}
- বিকল্প
ফেচ ইভেন্ট | হ্যান্ডলার কলব্যাক অপশন
একটি
FetchEvent
বা নীচে তালিকাভুক্ত বৈশিষ্ট্য সহ একটি বস্তু৷
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- সব হ্যান্ডেল
অকার্যকর
workbox-strategies.Strategy~handle
মতই, কিন্তু শুধুমাত্র একটিPromise
ফেরত দেওয়ার পরিবর্তে যা একটিResponse
প্রতিশ্রুতি দেয় এটি একটি[response, done]
প্রতিশ্রুতি প্রদান করবে, যেখানে পূর্বের (response
)handle()
ফেরত দেওয়ার সমতুল্য। , এবং পরেরটি হল একটি প্রতিশ্রুতি যা কৌশলটি সম্পাদনের অংশ হিসাবেevent.waitUntil()
এ যোগ করা যেকোনো প্রতিশ্রুতি সম্পূর্ণ হয়ে গেলে সমাধান হবে।কৌশল দ্বারা সম্পাদিত অতিরিক্ত কাজ (সাধারণত ক্যাশিং প্রতিক্রিয়া) সফলভাবে সম্পন্ন হয় তা নিশ্চিত করার জন্য আপনি
done
প্রতিশ্রুতির জন্য অপেক্ষা করতে পারেন।handleAll
ফাংশনটি এরকম দেখাচ্ছে:(options: FetchEvent | HandlerCallbackOptions) => {...}
- বিকল্প
ফেচ ইভেন্ট | হ্যান্ডলার কলব্যাক অপশন
একটি
FetchEvent
বা নীচে তালিকাভুক্ত বৈশিষ্ট্য সহ একটি বস্তু৷
- রিটার্ন
[প্রতিশ্রুতি<প্রতিক্রিয়া>, প্রতিশ্রুতি<void>]
[প্রতিক্রিয়া, সম্পন্ন] প্রতিশ্রুতির একটি টুপল যা প্রতিক্রিয়া কখন সমাধান হয় এবং হ্যান্ডলার তার সমস্ত কাজ শেষ করে তা নির্ধারণ করতে ব্যবহার করা যেতে পারে।
Strategy
একটি বিমূর্ত বেস ক্লাস যা অন্যান্য সমস্ত কৌশল ক্লাস থেকে প্রসারিত করা আবশ্যক:
বৈশিষ্ট্য
- নির্মাণকারী
অকার্যকর
কৌশলটির একটি নতুন উদাহরণ তৈরি করে এবং সমস্ত নথিভুক্ত বিকল্প বৈশিষ্ট্যগুলিকে পাবলিক ইনস্ট্যান্স বৈশিষ্ট্য হিসাবে সেট করে।
দ্রষ্টব্য: যদি একটি কাস্টম কৌশল ক্লাস বেস স্ট্র্যাটেজি ক্লাস প্রসারিত করে এবং এই বৈশিষ্ট্যগুলির চেয়ে বেশি প্রয়োজন না হয়, তবে এটির নিজস্ব কনস্ট্রাক্টর সংজ্ঞায়িত করার প্রয়োজন নেই।
constructor
ফাংশনটি এর মত দেখাচ্ছে:(options?: StrategyOptions) => {...}
- বিকল্প
কৌশল বিকল্প ঐচ্ছিক
- রিটার্ন
- cacheName
স্ট্রিং
- ফেচ অপশন
RequestInit ঐচ্ছিক
- ম্যাচ অপশন
CacheQueryOptions ঐচ্ছিক
- প্লাগইন
- _অপেক্ষা সম্পূর্ণ
অকার্যকর
_awaitComplete
ফাংশনটি এরকম দেখাচ্ছে:(responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
- প্রতিক্রিয়া সম্পন্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- হ্যান্ডলার
- অনুরোধ
অনুরোধ
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- রিটার্ন
প্রতিশ্রুতি <void>
- রেসপন্স পান
অকার্যকর
_getResponse
ফাংশনটি এরকম দেখাচ্ছে:(handler: StrategyHandler, request: Request, event: ExtendableEvent) => {...}
- হ্যান্ডলার
- অনুরোধ
অনুরোধ
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- _হ্যান্ডেল
অকার্যকর
_handle
ফাংশনটি এরকম দেখাচ্ছে:(request: Request, handler: StrategyHandler) => {...}
- অনুরোধ
অনুরোধ
- হ্যান্ডলার
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- হ্যান্ডেল
অকার্যকর
একটি অনুরোধ কৌশল সম্পাদন করুন এবং একটি
Promise
প্রদান করুন যা একটিResponse
সাথে সমাধান করবে, সমস্ত প্রাসঙ্গিক প্লাগইন কলব্যাকগুলিকে আহ্বান করে৷যখন একটি কৌশল উদাহরণ ওয়ার্কবক্স
workbox-routing.Route
এর সাথে নিবন্ধিত হয়। রুটটি মেলে এই পদ্ধতিটি স্বয়ংক্রিয়ভাবে কল করা হয়।বিকল্পভাবে, এই পদ্ধতিটি
event.respondWith()
এ পাস করে একটি স্বতন্ত্রFetchEvent
শ্রোতাদের মধ্যে ব্যবহার করা যেতে পারে।handle
ফাংশন এর মত দেখাচ্ছে:(options: FetchEvent | HandlerCallbackOptions) => {...}
- বিকল্প
ফেচ ইভেন্ট | হ্যান্ডলার কলব্যাক অপশন
একটি
FetchEvent
বা নীচে তালিকাভুক্ত বৈশিষ্ট্য সহ একটি বস্তু৷
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- সব হ্যান্ডেল
অকার্যকর
workbox-strategies.Strategy~handle
মতই, কিন্তু শুধুমাত্র একটিPromise
ফেরত দেওয়ার পরিবর্তে যা একটিResponse
প্রতিশ্রুতি দেয় এটি একটি[response, done]
প্রতিশ্রুতি প্রদান করবে, যেখানে পূর্বের (response
)handle()
ফেরত দেওয়ার সমতুল্য। , এবং পরেরটি হল একটি প্রতিশ্রুতি যা কৌশলটি সম্পাদনের অংশ হিসাবেevent.waitUntil()
এ যোগ করা যেকোনো প্রতিশ্রুতি সম্পূর্ণ হয়ে গেলে সমাধান হবে।কৌশল দ্বারা সম্পাদিত অতিরিক্ত কাজ (সাধারণত ক্যাশিং প্রতিক্রিয়া) সফলভাবে সম্পন্ন হয় তা নিশ্চিত করার জন্য আপনি
done
প্রতিশ্রুতির জন্য অপেক্ষা করতে পারেন।handleAll
ফাংশনটি এরকম দেখাচ্ছে:(options: FetchEvent | HandlerCallbackOptions) => {...}
- বিকল্প
ফেচ ইভেন্ট | হ্যান্ডলার কলব্যাক অপশন
একটি
FetchEvent
বা নীচে তালিকাভুক্ত বৈশিষ্ট্য সহ একটি বস্তু৷
- রিটার্ন
[প্রতিশ্রুতি<প্রতিক্রিয়া>, প্রতিশ্রুতি<void>]
[প্রতিক্রিয়া, সম্পন্ন] প্রতিশ্রুতির একটি টুপল যা প্রতিক্রিয়া কখন সমাধান হয় এবং হ্যান্ডলার তার সমস্ত কাজ শেষ করে তা নির্ধারণ করতে ব্যবহার করা যেতে পারে।
StrategyHandler
একটি ক্লাস তৈরি করা হয়েছে যখন একটি স্ট্র্যাটেজি ইন্সট্যান্স কল করে workbox-strategies.Strategy~handle
বা workbox-strategies.Strategy~handleAll
যা প্লাগইন কলব্যাকের চারপাশে সমস্ত ফেচ এবং ক্যাশে অ্যাকশনগুলিকে মোড়কে রাখে এবং কৌশলটি কখন "সম্পন্ন" হয় তা ট্র্যাক রাখে (অর্থাৎ সব যোগ করা হয়েছে) event.waitUntil()
প্রতিশ্রুতি সমাধান হয়েছে)।
বৈশিষ্ট্য
- নির্মাণকারী
অকার্যকর
পাস করা কৌশল এবং ইভেন্টের সাথে যুক্ত একটি নতুন উদাহরণ তৈরি করে যা অনুরোধটি পরিচালনা করছে।
কনস্ট্রাক্টর সেই অবস্থাকেও সূচনা করে যা এই অনুরোধটি পরিচালনাকারী প্রতিটি প্লাগইনকে পাস করা হবে।
constructor
ফাংশনটি এর মত দেখাচ্ছে:(strategy: Strategy, options: HandlerCallbackOptions) => {...}
- কৌশল
- বিকল্প
- রিটার্ন
- ঘটনা
এক্সটেন্ডেবল ইভেন্ট
- params
যে কোন ঐচ্ছিক
- অনুরোধ
অনুরোধ
- url
ইউআরএল ঐচ্ছিক
- cacheMatch
অকার্যকর
কৌশল অবজেক্টে সংজ্ঞায়িত
cacheName
,matchOptions
, এবংplugins
ব্যবহার করে ক্যাশে থেকে একটি অনুরোধ মেলে (এবং যে কোনও প্রযোজ্য প্লাগইন কলব্যাক পদ্ধতি ব্যবহার করে)।এই পদ্ধতিটি ব্যবহার করার সময় নিম্নলিখিত প্লাগইন লাইফসাইকেল পদ্ধতিগুলি আহ্বান করা হয়:
- cacheKeyWillByUsed()
- cachedResponseWillByUsed()
cacheMatch
ফাংশন এর মত দেখাচ্ছে:(key: RequestInfo) => {...}
- চাবি
তথ্যের অনুরোধ করুন
ক্যাশে কী হিসাবে ব্যবহার করার অনুরোধ বা URL।
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
একটি মিল প্রতিক্রিয়া, যদি পাওয়া যায়.
- ক্যাশেপুট
অকার্যকর
কৌশল অবজেক্টে সংজ্ঞায়িত
cacheName
এবংplugins
ব্যবহার করে ক্যাশে একটি অনুরোধ/প্রতিক্রিয়া জোড়া রাখে (এবং যে কোনও প্রযোজ্য প্লাগইন কলব্যাক পদ্ধতি ব্যবহার করে)।এই পদ্ধতিটি ব্যবহার করার সময় নিম্নলিখিত প্লাগইন লাইফসাইকেল পদ্ধতিগুলি আহ্বান করা হয়:
- cacheKeyWillByUsed()
- cacheWillUpdate()
- cacheDidUpdate()
cachePut
ফাংশন এর মত দেখাচ্ছে:(key: RequestInfo, response: Response) => {...}
- চাবি
তথ্যের অনুরোধ করুন
ক্যাশে কী হিসাবে ব্যবহার করার অনুরোধ বা URL।
- প্রতিক্রিয়া
প্রতিক্রিয়া
ক্যাশে প্রতিক্রিয়া.
- রিটার্ন
প্রতিশ্রুতি<বুলিয়ান>
false
যদি একটি cacheWillUpdate দ্বারা প্রতিক্রিয়া ক্যাশে করা না হয়, এবং অন্যথায়true
।
- ধ্বংস
অকার্যকর
কৌশলটি চালানো বন্ধ করে এবং অবিলম্বে কোনো মুলতুবি
waitUntil()
প্রতিশ্রুতির সমাধান করে।destroy
ফাংশন এর মত দেখায়:() => {...}
- সম্পন্ন প্রতীক্ষা
অকার্যকর
একটি প্রতিশ্রুতি প্রদান করে যা
workbox-strategies.StrategyHandler~waitUntil
পাস করা সমস্ত প্রতিশ্রুতি একবার সমাধান করে৷দ্রষ্টব্য:
doneWaiting()
নিষ্পত্তি হওয়ার পরে ম্যানুয়ালি একটি ইভেন্টেরwaitUntil()
পদ্ধতিতে প্রেরণ করা উচিত (এই হ্যান্ডলারেরwaitUntil()
পদ্ধতি নয়), অন্যথায় আপনার কাজ শেষ হওয়ার আগে পরিষেবা কর্মী থ্রেড আমার হত্যা করা হবে।doneWaiting
ফাংশনটি এর মত দেখাচ্ছে:() => {...}
- রিটার্ন
প্রতিশ্রুতি <void>
- আনা
অকার্যকর
fetchOptions
(নন-নেভিগেশন অনুরোধের জন্য) এবংStrategy
অবজেক্টে সংজ্ঞায়িতplugins
ব্যবহার করে একটি প্রদত্ত অনুরোধ (এবং যেকোন প্রযোজ্য প্লাগইন কলব্যাক পদ্ধতির আহ্বান) নিয়ে আসে।এই পদ্ধতিটি ব্যবহার করার সময় নিম্নলিখিত প্লাগইন লাইফসাইকেল পদ্ধতিগুলি আহ্বান করা হয়:
-
requestWillFetch()
-
fetchDidSucceed()
-
fetchDidFail()
fetch
ফাংশন এর মত দেখাচ্ছে:(input: RequestInfo) => {...}
- ইনপুট
তথ্যের অনুরোধ করুন
URL বা আনার অনুরোধ৷
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
-
- fetchAndCachePut
অকার্যকর
this.fetch()
কে কল করে এবং (পটভূমিতে)this.fetch()
দ্বারা উত্পন্ন প্রতিক্রিয়ার উপরthis.cachePut()
চালায়।this.cachePut()
এ কলটি স্বয়ংক্রিয়ভাবেthis.waitUntil()
আহ্বান করে, তাই ইভেন্টে আপনাকে ম্যানুয়ালিwaitUntil()
কল করতে হবে না।fetchAndCachePut
ফাংশনটি এরকম দেখাচ্ছে:(input: RequestInfo) => {...}
- ইনপুট
তথ্যের অনুরোধ করুন
আনয়ন এবং ক্যাশে করার অনুরোধ বা URL।
- রিটার্ন
প্রতিশ্রুতি <প্রতিক্রিয়া>
- getCacheKey
অকার্যকর
cacheKeyWillBeUsed
কলব্যাকের জন্য প্লাগইনগুলির তালিকা চেক করে, এবং ক্রমানুসারে পাওয়া সেই কলব্যাকগুলির যেকোনও কার্যকর করে৷ শেষ প্লাগইন দ্বারা প্রত্যাবর্তিত চূড়ান্তRequest
বস্তুটি ক্যাশে পড়ার এবং/বা লেখার জন্য ক্যাশে কী হিসাবে বিবেচিত হয়। যদি কোনোcacheKeyWillBeUsed
প্লাগইন কলব্যাক নিবন্ধিত না হয়, পাস করা অনুরোধ অপরিবর্তিত ফেরত দেওয়া হয়getCacheKey
ফাংশন এর মত দেখাচ্ছে:(request: Request, mode: "read"
| "write"
) => {...}- অনুরোধ
অনুরোধ
- মোড
"পড়ুন"
| "লিখুন"
- রিটার্ন
প্রতিশ্রুতি <অনুরোধ>
- কলব্যাক আছে
অকার্যকর
প্রদত্ত কলব্যাকের সাথে কৌশলটিতে কমপক্ষে একটি প্লাগইন থাকলে সত্য ফেরত দেয়।
hasCallback
ফাংশন এর মত দেখাচ্ছে:(name: C) => {...}
- নাম
গ
চেক করার জন্য কলব্যাকের নাম।
- রিটার্ন
বুলিয়ান
- পুনরাবৃত্তি কলব্যাক
অকার্যকর
একটি কলব্যাক গ্রহণ করে এবং প্লাগইন কলব্যাকগুলির সাথে মিলে যাওয়া একটি পুনরাবৃত্তিযোগ্য ফেরত দেয়, যেখানে প্রতিটি কলব্যাক বর্তমান হ্যান্ডলার অবস্থার সাথে মোড়ানো থাকে (অর্থাৎ আপনি যখন প্রতিটি কলব্যাক কল করেন, আপনি যে বস্তুর প্যারামিটারটি পাস করেন তা প্লাগইনটির বর্তমান অবস্থার সাথে একত্রিত হবে)।
iterateCallbacks
ফাংশন এর মত দেখাচ্ছে:(name: C) => {...}
- নাম
গ
কলব্যাক চালানোর জন্য নাম
- রিটার্ন
জেনারেটর<NonNullable<indexedAccess>অজানা>
- কলব্যাক চালান
অকার্যকর
প্রদত্ত নামের সাথে মিলে যাওয়া সমস্ত প্লাগইন কলব্যাক চালায়, ক্রমানুসারে, প্রদত্ত প্যারাম অবজেক্টকে (বর্তমান প্লাগইন অবস্থার সাথে একত্রিত করা) একমাত্র আর্গুমেন্ট হিসেবে।
দ্রষ্টব্য: যেহেতু এই পদ্ধতিটি সমস্ত প্লাগইন চালায়, এটি সেই ক্ষেত্রে উপযুক্ত নয় যেখানে পরবর্তী কলব্যাকে কল করার আগে একটি কলব্যাকের রিটার্ন মান প্রয়োগ করতে হবে৷ কিভাবে সেই কেসটি পরিচালনা করতে হয় তার জন্য নিচে
workbox-strategies.StrategyHandler#iterateCallbacks
দেখুন।runCallbacks
ফাংশনটি দেখতে এরকম দেখাচ্ছে:(name: C, param: Omit<indexedAccess"state"
>) => {...}- নাম
গ
প্রতিটি প্লাগইনের মধ্যে চালানোর জন্য কলব্যাকের নাম।
- পরম
বাদ দিন<indexedAccess "state"
>প্রতিটি কলব্যাক চালানোর সময় প্রথম (এবং শুধুমাত্র) প্যারাম হিসেবে যে বস্তুটি পাস করতে হবে। কলব্যাক সম্পাদনের আগে এই বস্তুটি বর্তমান প্লাগইন অবস্থার সাথে একত্রিত হবে।
- রিটার্ন
প্রতিশ্রুতি <void>
- পর্যন্ত অপেক্ষা করুন
অকার্যকর
অনুরোধটি পরিচালনা করার সাথে যুক্ত ইভেন্ট ইভেন্টের
https://w3c.github.io/ServiceWorker/#extendableevent-extend-lifetime-promises
(সাধারণত একটিFetchEvent
) একটি প্রতিশ্রুতি যোগ করে।দ্রষ্টব্য: আপনি
workbox-strategies.StrategyHandler~doneWaiting
৷waitUntil
ফাংশনটি এরকম দেখাচ্ছে:(promise: Promise<T>) => {...}
- প্রতিশ্রুতি
প্রতিশ্রুতি<T>
অনুরোধটি ট্রিগার করে এমন ইভেন্টের বর্ধিত জীবনকালের প্রতিশ্রুতি যোগ করার প্রতিশ্রুতি।
- রিটার্ন
প্রতিশ্রুতি<T>
StrategyOptions
বৈশিষ্ট্য
- cacheName
স্ট্রিং ঐচ্ছিক
- ফেচ অপশন
RequestInit ঐচ্ছিক
- ম্যাচ অপশন
CacheQueryOptions ঐচ্ছিক
- প্লাগইন
WorkboxPlugin [] ঐচ্ছিক