ওয়ার্কবক্স-কোর

ওয়ার্কবক্সটি মডুলার হওয়ার জন্য তৈরি করা হয়েছে, যা ডেভেলপারদের একটি ফাইলে সবকিছু ডাউনলোড করতে বাধ্য না করেই তারা ব্যবহার করতে চায় এমন টুকরো নির্বাচন করতে দেয়।

তবে মডিউলগুলির মধ্যে ওভারল্যাপ রয়েছে, উদাহরণস্বরূপ, প্রতিটি মডিউল কনসোলের সাথে ইন্টারঅ্যাক্ট করতে, অর্থপূর্ণ ত্রুটিগুলি নিক্ষেপ করতে এবং নেটওয়ার্ক বা ক্যাশে ব্যবহার করতে পছন্দ করবে। প্রতিটি মডিউল একই যুক্তি প্রয়োগ করা এড়াতে, 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() যদি "ভুল" সময়ে কল করা হয় তবে এটি একটি ব্যতিক্রম ছুঁড়বে না, তাই এটিকে একটি ইভেন্ট হ্যান্ডলারে মোড়ানোর দরকার নেই৷

প্রকারভেদ

CacheDidUpdateCallback()

workbox-core.CacheDidUpdateCallback(
  param: CacheDidUpdateCallbackParam,
)

পরামিতি

রিটার্নস

  • প্রতিশ্রুতি <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 ঐচ্ছিক

FetchDidFailCallback()

workbox-core.FetchDidFailCallback(
  param: FetchDidFailCallbackParam,
)

রিটার্নস

  • প্রতিশ্রুতি <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 বা একটি RouteHandlerObjectworkbox-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

আনয়ন এবং ক্যাশে অপারেশনের জন্য ঐচ্ছিক জীবনচক্র কলব্যাক বৈশিষ্ট্য সহ একটি বস্তু৷

বৈশিষ্ট্য

WorkboxPluginCallbackParam

বৈশিষ্ট্য

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() কল করা সমতুল্য, এবং এর পরিবর্তে ব্যবহার করা উচিত।