ওয়ার্কবক্স-নেভিগেশন-প্রিলোড

" নেভিগেশন প্রিলোড সহ পরিষেবা কর্মীকে গতি বাড়ান " নেভিগেশন প্রিলোড কী এবং এটি ওয়েব অ্যাপগুলির জন্য যে সুবিধাগুলি অফার করে সেইগুলির পরিষেবা কর্মী স্পষ্টভাবে নেভিগেশন অনুরোধগুলি পরিচালনা করে না তা ব্যাখ্যা করার জন্য একটি দুর্দান্ত কাজ করে৷

এই মডিউল কি করে?

workbox-navigation-preload বর্তমান ব্রাউজারটি নেভিগেশন প্রিলোড সমর্থন করে কিনা তা দেখার জন্য রানটাইমে চেকিং পরিচালনা করবে এবং যদি এটি করে, এটি সক্রিয় করতে এটি স্বয়ংক্রিয়ভাবে একটি activate ইভেন্ট হ্যান্ডলার তৈরি করবে।

workbox-core অভ্যন্তরে ভাগ করা কোড যা সমস্ত ওয়ার্কবক্স জুড়ে নেটওয়ার্ক অনুরোধগুলি পরিচালনা করে, এটি উপলব্ধ থাকলে স্বয়ংক্রিয়ভাবে একটি প্রিলোড প্রতিক্রিয়ার সুবিধা নিতে আপডেট করা হয়েছে। এর মানে হল যে কোনও অন্তর্নির্মিত কৌশল স্বয়ংক্রিয়ভাবে নেভিগেশন প্রিলোডের সুবিধা নিতে পারে, একবার এটি সক্ষম হয়ে গেলে।

কার নেভিগেশন প্রিলোড সক্ষম করা উচিত?

ডেভেলপাররা যারা ইতিমধ্যেই প্রিক্যাচড এইচটিএমএল (সম্ভাব্যভাবে একটি অ্যাপ শেল ফলব্যাকের সাথে কনফিগার করা হয়েছে) দিয়ে সাড়া দিয়ে নেভিগেশন পরিচালনা করছেন তাদের নেভিগেশন প্রিলোড সক্ষম করার দরকার নেই! এই বৈশিষ্ট্যটি এমন ডেভেলপারদের জন্য নেভিগেশন লেটেন্সি কমানোর উদ্দেশ্যে করা হয়েছে যারা তাদের এইচটিএমএল প্রিক্যাচ করতে পারে না, কিন্তু তবুও তাদের সাইটে অন্যান্য সম্পদের ক্যাশিং পরিচালনা করতে ওয়ার্কবক্স ব্যবহার করতে চায়।

উদাহরণ স্বরূপ, আপনি যদি অ্যাপ শেল প্যাটার্ন অনুসরণ করেন, এবং আপনি একটি নেভিগেশন রুট ইতিমধ্যেই প্রিক্যাচড HTML ব্যবহার করার জন্য সেট আপ করে থাকেন, তাহলে নেভিগেশন প্রিলোড সক্ষম করা একটি অপচয় হবে। প্রিলোড অনুরোধের সাথে যুক্ত নেটওয়ার্ক প্রতিক্রিয়া কখনই ব্যবহার করা শেষ হবে না, যেহেতু প্রিক্যাচড HTML নিঃশর্তভাবে ব্যবহার করা হবে।

মৌলিক ব্যবহার

import * as navigationPreload from 'workbox-navigation-preload';
import {NetworkFirst} from 'workbox-strategies';
import {registerRoute, NavigationRoute} from 'workbox-routing';

// Enable navigation preload.
navigationPreload.enable();

// Swap in NetworkOnly, CacheFirst, or StaleWhileRevalidate as needed.
const strategy = new NetworkFirst({
  cacheName: 'cached-navigations',
  plugins: [
    // Any plugins, like `ExpirationPlugin`, etc.
  ],
});

const navigationRoute = new NavigationRoute(strategy, {
  // Optionally, provide a allow/denylist of RegExps to determine
  // which paths will match this route.
  // allowlist: [],
  // denylist: [],
});

registerRoute(navigationRoute);

ব্রাউজার সমর্থন গল্প কি?

বর্তমানে, গুগল ক্রোমই একমাত্র ব্রাউজার যা নেভিগেশন প্রিলোড সমর্থন করে। enable() রানটাইমে ব্রাউজার সমর্থন পরীক্ষা করবে, এবং বর্তমান ব্রাউজার এটি সমর্থন করলে শুধুমাত্র নেভিগেশন প্রিলোড সক্ষম করার চেষ্টা করবে। তাই আপনার পরিষেবা কর্মীকে নিঃশর্তভাবে enable() কল করা নিরাপদ।

আপনার সচেতন হওয়া উচিত যে সেই ব্রাউজারগুলি নেভিগেশন লেটেন্সি হ্রাস থেকে উপকৃত হবে না, এবং এটি সুপারিশ করা হয় যে আপনি সাবধানতার সাথে এমন একটি পরিষেবা কর্মী শিপিংয়ের কার্যকারিতা পরিমাপ করুন যা নেভিগেশন অনুরোধগুলি পরিচালনা করে না এবং নেভিগেশন প্রিলোড ব্যবহার করে না৷

পদ্ধতি

disable()

workbox-navigation-preload.disable()

যদি ব্রাউজারটি নেভিগেশন প্রিলোড সমর্থন করে, তাহলে এটি এটি নিষ্ক্রিয় করবে।

enable()

workbox-navigation-preload.enable(
  headerValue?: string,
)

যদি ব্রাউজার নেভিগেশন প্রিলোড সমর্থন করে, তাহলে এটি এটি সক্ষম করবে।

পরামিতি

  • headerValue

    স্ট্রিং ঐচ্ছিক

isSupported()

workbox-navigation-preload.isSupported()

রিটার্নস

  • বুলিয়ান

    বর্তমান ব্রাউজার নেভিগেশন প্রিলোড সক্ষম করা সমর্থন করে কিনা।