chrome.storage

বর্ণনা

ব্যবহারকারীর ডেটা সংরক্ষণ, পুনরুদ্ধার এবং পরিবর্তনগুলি ট্র্যাক করতে chrome.storage API ব্যবহার করুন৷

অনুমতি

storage

ওভারভিউ

স্টোরেজ API ব্যবহারকারীর ডেটা এবং স্থিতি বজায় রাখার জন্য একটি এক্সটেনশন-নির্দিষ্ট উপায় প্রদান করে। এটি ওয়েব প্ল্যাটফর্মের স্টোরেজ এপিআই ( IndexedDB , এবং Storage ) এর মতো, কিন্তু এক্সটেনশনের স্টোরেজ চাহিদা মেটাতে ডিজাইন করা হয়েছে। নিম্নলিখিত কয়েকটি মূল বৈশিষ্ট্য রয়েছে:

  • এক্সটেনশন পরিষেবা কর্মী এবং বিষয়বস্তু স্ক্রিপ্ট সহ সমস্ত এক্সটেনশন প্রসঙ্গগুলির স্টোরেজ API-তে অ্যাক্সেস রয়েছে৷
  • JSON ক্রমিক মানগুলি বস্তুর বৈশিষ্ট্য হিসাবে সংরক্ষণ করা হয়।
  • স্টোরেজ API বাল্ক রিড এবং রাইট অপারেশন সহ অ্যাসিঙ্ক্রোনাস।
  • এমনকি ব্যবহারকারী ক্যাশে এবং ব্রাউজিং ইতিহাস সাফ করলেও, ডেটা টিকে থাকে।
  • বিভক্ত ছদ্মবেশী ব্যবহার করার সময়ও সঞ্চিত সেটিংস বজায় থাকে।
  • এন্টারপ্রাইজ নীতির জন্য একটি একচেটিয়া-পঠন- পরিচালিত স্টোরেজ এলাকা অন্তর্ভুক্ত করে।

যদিও এক্সটেনশনগুলি কিছু প্রসঙ্গে ( Storage এবং অন্যান্য এইচটিএমএল পেজ) ইন্টারফেস ( window.localStorage থেকে অ্যাক্সেসযোগ্য) ইন্টারফেস ব্যবহার করতে পারে, নিম্নলিখিত কারণে এটি সুপারিশ করা হয় না:

  • এক্সটেনশনের পরিষেবা কর্মী Storage অ্যাক্সেস করতে পারবেন না৷
  • কন্টেন্ট স্ক্রিপ্ট হোস্ট পৃষ্ঠার সাথে স্টোরেজ শেয়ার করে।
  • Storage ইন্টারফেস ব্যবহার করে সংরক্ষিত ডেটা হারিয়ে যায় যখন ব্যবহারকারী তাদের ব্রাউজিং ইতিহাস সাফ করে।

একটি পরিষেবা কর্মী থেকে ওয়েব স্টোরেজ API থেকে এক্সটেনশন স্টোরেজ APIগুলিতে ডেটা স্থানান্তর করতে:

  1. একটি রূপান্তর রুটিন এবং একটি [ onMessage ][অন-মেসেজ] হ্যান্ডলার সহ একটি অফস্ক্রিন নথি তৈরি করুন৷
  2. একটি অফস্ক্রিন নথিতে একটি রূপান্তর রুটিন যোগ করুন।
  3. এক্সটেনশন পরিষেবা কর্মী আপনার ডেটার জন্য chrome.storage চেক করুন৷
  4. যদি আপনার ডেটা না পাওয়া যায়, একটি অফস্ক্রিন নথি [তৈরি করুন]অফস্ক্রিন করুন এবং [ sendMessage() [সেন্ড-মেসেজ] কল করুন রূপান্তর রুটিন শুরু করতে।
  5. অফস্ক্রিন নথির onMessage হ্যান্ডলারের ভিতরে, রূপান্তর রুটিন কল করুন।

ওয়েব স্টোরেজ API কিভাবে এক্সটেনশনে কাজ করে তার কিছু সূক্ষ্মতা রয়েছে। [স্টোরেজ এবং কুকিজ][স্টোরেজ-এবং-কুকিজ] নিবন্ধে আরও জানুন।

স্টোরেজ এলাকা

স্টোরেজ API নিম্নলিখিত চারটি বালতিতে বিভক্ত ("স্টোরেজ এলাকা"):

storage.local
ডেটা স্থানীয়ভাবে সংরক্ষণ করা হয়, যা এক্সটেনশন সরানো হলে সাফ হয়। কোটার সীমাবদ্ধতা প্রায় 10 MB, কিন্তু "unlimitedStorage" অনুমতির অনুরোধ করে বাড়ানো যেতে পারে। বৃহত্তর পরিমাণে ডেটা সঞ্চয় করতে এটি ব্যবহার করার কথা বিবেচনা করুন।
storage.sync
সিঙ্কিং সক্ষম করা থাকলে, ব্যবহারকারী লগ ইন করা যেকোনো Chrome ব্রাউজারে ডেটা সিঙ্ক করা হয়। অক্ষম হলে, এটি storage.local মতো আচরণ করে। যখন ব্রাউজার অফলাইন থাকে তখন Chrome স্থানীয়ভাবে ডেটা সঞ্চয় করে এবং আবার অনলাইন হলে সিঙ্ক করা শুরু করে৷ কোটার সীমাবদ্ধতা প্রায় 100 KB, প্রতি আইটেম 8 KB। সিঙ্ক করা ব্রাউজার জুড়ে ব্যবহারকারীর সেটিংস সংরক্ষণ করতে এটি ব্যবহার করার কথা বিবেচনা করুন।
স্টোরেজ.সেশন
একটি ব্রাউজার সেশনের সময়কালের জন্য মেমরিতে ডেটা রাখে। ডিফল্টরূপে, এটি বিষয়বস্তু স্ক্রিপ্টের সংস্পর্শে আসে না, তবে chrome.storage.session.setAccessLevel() সেট করে এই আচরণ পরিবর্তন করা যেতে পারে। কোটার সীমাবদ্ধতা প্রায় 10 MB। পরিষেবা কর্মী রান জুড়ে বিশ্বব্যাপী ভেরিয়েবল সংরক্ষণ করতে এটি ব্যবহার করার কথা বিবেচনা করুন।
স্টোরেজ।পরিচালিত
প্রশাসকরা একটি পরিচালিত পরিবেশে একটি সমর্থনকারী এক্সটেনশনের সেটিংস কনফিগার করতে একটি স্কিমা এবং এন্টারপ্রাইজ নীতি ব্যবহার করতে পারেন৷ এই স্টোরেজ এলাকা শুধুমাত্র পঠনযোগ্য.

উদ্ভাসিত

স্টোরেজ API ব্যবহার করতে, এক্সটেনশন ম্যানিফেস্টে "storage" অনুমতি ঘোষণা করুন৷ যেমন:

{
  "name": "My extension",
  ...
  "permissions": [
    "storage"
  ],
  ...
}

ব্যবহার

নিম্নলিখিত নমুনাগুলি local , sync , এবং session স্টোরেজ এলাকাগুলি প্রদর্শন করে:

store.local

chrome.storage.local.set({ key: value }).then(() => {
  console.log("Value is set");
});

chrome.storage.local.get(["key"]).then((result) => {
  console.log("Value currently is " + result.key);
});

store.sync

chrome.storage.sync.set({ key: value }).then(() => {
  console.log("Value is set");
});

chrome.storage.sync.get(["key"]).then((result) => {
  console.log("Value currently is " + result.key);
});

স্টোরেজ.সেশন

chrome.storage.session.set({ key: value }).then(() => {
  console.log("Value was set");
});

chrome.storage.session.get(["key"]).then((result) => {
  console.log("Value currently is " + result.key);
});

managed স্টোরেজ এলাকা সম্পর্কে আরও জানতে, স্টোরেজ এলাকার জন্য ম্যানিফেস্ট দেখুন।

স্টোরেজ এবং থ্রটলিং সীমা

একটি বড় ট্রাকে জিনিস রাখার মত স্টোরেজ API এ যোগ করার কথা ভাববেন না। সঞ্চয়স্থানে যোগ করার কথা ভাবুন পাইপে কিছু রাখার মতো। পাইপটিতে ইতিমধ্যে উপাদান থাকতে পারে এবং এটি ভরাটও হতে পারে। আপনি কখন সঞ্চয়স্থানে যোগ করবেন এবং যখন এটি আসলে রেকর্ড করা হবে তার মধ্যে সর্বদা একটি বিলম্ব অনুমান করুন৷

স্টোরেজ এলাকার সীমাবদ্ধতা এবং সেগুলি অতিক্রম করলে কী ঘটে তার বিশদ বিবরণের জন্য, sync , local এবং session জন্য কোটা তথ্য দেখুন৷

কেস ব্যবহার করুন

নিম্নলিখিত বিভাগগুলি স্টোরেজ API-এর জন্য সাধারণ ব্যবহারের ক্ষেত্রে প্রদর্শন করে।

স্টোরেজ আপডেটের সিঙ্ক্রোনাস প্রতিক্রিয়া

সঞ্চয়স্থানে করা পরিবর্তনগুলি ট্র্যাক করতে, আপনি এর onChanged ইভেন্টে একজন শ্রোতা যোগ করতে পারেন৷ সঞ্চয়স্থানে কিছু পরিবর্তন হলে, সেই ইভেন্টটি আগুন হয়ে যায়। নমুনা কোড এই পরিবর্তনগুলির জন্য শোনে:

background.js:

chrome.storage.onChanged.addListener((changes, namespace) => {
  for (let [key, { oldValue, newValue }] of Object.entries(changes)) {
    console.log(
      `Storage key "${key}" in namespace "${namespace}" changed.`,
      `Old value was "${oldValue}", new value is "${newValue}".`
    );
  }
});

আমরা এই ধারণাটিকে আরও এগিয়ে নিতে পারি। এই উদাহরণে, আমাদের কাছে একটি বিকল্প পৃষ্ঠা রয়েছে যা ব্যবহারকারীকে একটি "ডিবাগ মোড" টগল করতে দেয় (বাস্তবায়ন এখানে দেখানো হয়নি)। বিকল্প পৃষ্ঠাটি অবিলম্বে storage.sync এ নতুন সেটিংস সংরক্ষণ করে এবং যত তাড়াতাড়ি সম্ভব সেটিং প্রয়োগ করতে পরিষেবা কর্মী storage.onChanged ব্যবহার করে৷

options.html:

<!-- type="module" allows you to use top level await -->
<script defer src="options.js" type="module"></script>
<form id="optionsForm">
  <label for="debug">
    <input type="checkbox" name="debug" id="debug">
    Enable debug mode
  </label>
</form>

options.js:

// In-page cache of the user's options
const options = {};
const optionsForm = document.getElementById("optionsForm");

// Immediately persist options changes
optionsForm.debug.addEventListener("change", (event) => {
  options.debug = event.target.checked;
  chrome.storage.sync.set({ options });
});

// Initialize the form with the user's option settings
const data = await chrome.storage.sync.get("options");
Object.assign(options, data.options);
optionsForm.debug.checked = Boolean(options.debug);

background.js:

function setDebugMode() { /* ... */ }

// Watch for changes to the user's options & apply them
chrome.storage.onChanged.addListener((changes, area) => {
  if (area === 'sync' && changes.options?.newValue) {
    const debugMode = Boolean(changes.options.newValue.debug);
    console.log('enable debug mode?', debugMode);
    setDebugMode(debugMode);
  }
});

স্টোরেজ থেকে অ্যাসিঙ্ক্রোনাস প্রিলোড

যেহেতু পরিষেবা কর্মীরা সর্বদা চলমান থাকে না, মেনিফেস্ট V3 এক্সটেনশনগুলিকে তাদের ইভেন্ট হ্যান্ডলারগুলি চালানোর আগে কখনও কখনও স্টোরেজ থেকে অসিঙ্ক্রোনাসভাবে ডেটা লোড করতে হয়। এটি করার জন্য, নিম্নলিখিত স্নিপেটটি একটি async action.onClicked ইভেন্ট হ্যান্ডলার ব্যবহার করে যেটি storageCache গ্লোবাল এর লজিক কার্যকর করার আগে পপুলেট হওয়ার জন্য অপেক্ষা করে।

background.js:

// Where we will expose all the data we retrieve from storage.sync.
const storageCache = { count: 0 };
// Asynchronously retrieve data from storage.sync, then cache it.
const initStorageCache = chrome.storage.sync.get().then((items) => {
  // Copy the data retrieved from storage into storageCache.
  Object.assign(storageCache, items);
});

chrome.action.onClicked.addListener(async (tab) => {
  try {
    await initStorageCache;
  } catch (e) {
    // Handle error that occurred during storage initialization.
  }

  // Normal action handler logic.
  storageCache.count++;
  storageCache.lastTabId = tab.id;
  chrome.storage.sync.set(storageCache);
});

এক্সটেনশন উদাহরণ

স্টোরেজ API-এর অন্যান্য ডেমো দেখতে, নিম্নলিখিত উদাহরণগুলির মধ্যে যেকোনো একটি অন্বেষণ করুন:

প্রকারভেদ

AccessLevel

Chrome 102+

স্টোরেজ এলাকার অ্যাক্সেস লেভেল।

এনাম

"TRUSTED_CONTEXTS"
এক্সটেনশন থেকে উদ্ভূত প্রসঙ্গগুলি নির্দিষ্ট করে৷

"TRUSTED_AND_UNTRUSTED_CONTEXTS"
এক্সটেনশনের বাইরে থেকে উদ্ভূত প্রসঙ্গগুলি নির্দিষ্ট করে৷

StorageArea

বৈশিষ্ট্য

  • পরিবর্তন করা হয়েছে

    ইভেন্ট<functionvoidvoid>

    Chrome 73+

    এক বা একাধিক আইটেম পরিবর্তন হলে বহিস্কার করা হয়।

    onChanged.addListener ফাংশনটি এরকম দেখাচ্ছে:

    (callback: function) => {...}

    • কলব্যাক

      ফাংশন

      callback প্যারামিটারটি এর মতো দেখাচ্ছে:

      (changes: object) => void

      • পরিবর্তন

        বস্তু

  • পরিষ্কার

    অকার্যকর

    প্রতিশ্রুতি

    সঞ্চয়স্থান থেকে সমস্ত আইটেম সরান.

    clear ফাংশন মত দেখায়:

    (callback?: function) => {...}

    • কলব্যাক

      ফাংশন ঐচ্ছিক

      callback প্যারামিটারটি এর মতো দেখাচ্ছে:

      () => void

    • রিটার্ন

      প্রতিশ্রুতি <void>

      Chrome 88+

      প্রতিশ্রুতি শুধুমাত্র ম্যানিফেস্ট V3 এর জন্য সমর্থিত এবং পরবর্তীতে, অন্যান্য প্ল্যাটফর্মকে কলব্যাক ব্যবহার করতে হবে।

  • পেতে

    অকার্যকর

    প্রতিশ্রুতি

    স্টোরেজ থেকে এক বা একাধিক আইটেম পায়।

    get ফাংশনটি এরকম দেখাচ্ছে:

    (keys?: string | string[] | object, callback?: function) => {...}

    • কী

      স্ট্রিং | স্ট্রিং[] | বস্তু ঐচ্ছিক

      পেতে একটি একক কী, পেতে কীগুলির তালিকা, বা ডিফল্ট মান নির্দিষ্ট করে একটি অভিধান (বস্তুর বিবরণ দেখুন)। একটি খালি তালিকা বা বস্তু একটি খালি ফলাফল বস্তু প্রদান করবে। স্টোরেজের সম্পূর্ণ বিষয়বস্তু পেতে null পাস করুন।

    • কলব্যাক

      ফাংশন ঐচ্ছিক

      callback প্যারামিটারটি এর মতো দেখাচ্ছে:

      (items: object) => void

      • আইটেম

        বস্তু

        তাদের কী-মান ম্যাপিং-এ আইটেম সহ অবজেক্ট করুন।

    • রিটার্ন

      প্রতিশ্রুতি<object>

      Chrome 88+

      প্রতিশ্রুতি শুধুমাত্র ম্যানিফেস্ট V3 এর জন্য সমর্থিত এবং পরবর্তীতে, অন্যান্য প্ল্যাটফর্মকে কলব্যাক ব্যবহার করতে হবে।

  • getBytesInUse

    অকার্যকর

    প্রতিশ্রুতি

    এক বা একাধিক আইটেম দ্বারা ব্যবহৃত স্থানের পরিমাণ (বাইটে) পায়।

    getBytesInUse ফাংশনটি এরকম দেখাচ্ছে:

    (keys?: string | string[], callback?: function) => {...}

    • কী

      স্ট্রিং | স্ট্রিং[] ঐচ্ছিক

      মোট ব্যবহার পেতে একটি একক কী বা কীগুলির তালিকা৷ একটি খালি তালিকা 0 প্রদান করবে। সমস্ত স্টোরেজের মোট ব্যবহার পেতে null পাস করুন।

    • কলব্যাক

      ফাংশন ঐচ্ছিক

      callback প্যারামিটারটি এর মতো দেখাচ্ছে:

      (bytesInUse: number) => void

      • bytesInUse

        সংখ্যা

        সঞ্চয়স্থানে ব্যবহৃত স্থানের পরিমাণ, বাইটে।

    • রিটার্ন

      প্রতিশ্রুতি <সংখ্যা>

      Chrome 88+

      প্রতিশ্রুতি শুধুমাত্র ম্যানিফেস্ট V3 এর জন্য সমর্থিত এবং পরবর্তীতে, অন্যান্য প্ল্যাটফর্মকে কলব্যাক ব্যবহার করতে হবে।

  • getKeys

    অকার্যকর

    প্রতিশ্রুতি মুলতুবি

    স্টোরেজ থেকে সব কী পায়।

    getKeys ফাংশন এর মত দেখাচ্ছে:

    (callback?: function) => {...}

    • কলব্যাক

      ফাংশন ঐচ্ছিক

      callback প্যারামিটারটি এর মতো দেখাচ্ছে:

      (keys: string[]) => void

      • কী

        স্ট্রিং[]

        স্টোরেজ থেকে পড়া কী সহ অ্যারে।

    • রিটার্ন

      প্রতিশ্রুতি<string[]>

      প্রতিশ্রুতি শুধুমাত্র ম্যানিফেস্ট V3 এর জন্য সমর্থিত এবং পরবর্তীতে, অন্যান্য প্ল্যাটফর্মকে কলব্যাক ব্যবহার করতে হবে।

  • অপসারণ

    অকার্যকর

    প্রতিশ্রুতি

    স্টোরেজ থেকে এক বা একাধিক আইটেম সরিয়ে দেয়।

    remove ফাংশন এর মত দেখাচ্ছে:

    (keys: string | string[], callback?: function) => {...}

    • কী

      স্ট্রিং | স্ট্রিং[]

      সরানোর জন্য আইটেমগুলির জন্য একটি একক কী বা কীগুলির একটি তালিকা৷

    • কলব্যাক

      ফাংশন ঐচ্ছিক

      callback প্যারামিটারটি এর মতো দেখাচ্ছে:

      () => void

    • রিটার্ন

      প্রতিশ্রুতি <void>

      Chrome 88+

      প্রতিশ্রুতি শুধুমাত্র ম্যানিফেস্ট V3 এর জন্য সমর্থিত এবং পরবর্তীতে, অন্যান্য প্ল্যাটফর্মকে কলব্যাক ব্যবহার করতে হবে।

  • সেট

    অকার্যকর

    প্রতিশ্রুতি

    একাধিক আইটেম সেট করে।

    set ফাংশন এর মত দেখাচ্ছে:

    (items: object, callback?: function) => {...}

    • আইটেম

      বস্তু

      একটি বস্তু যা স্টোরেজ আপডেট করতে প্রতিটি কী/মান জোড়া দেয়। সঞ্চয়স্থানে অন্য কোন কী/মান জোড়া প্রভাবিত হবে না।

      আদিম মান যেমন সংখ্যা প্রত্যাশিত হিসাবে ক্রমিক করা হবে. "object" এবং "function" এর typeof সহ মানগুলি সাধারণত {} তে সিরিয়াল করা হবে, Array (প্রত্যাশিত হিসাবে সিরিয়ালাইজ করা হয়), Date এবং Regex (তাদের String উপস্থাপনা ব্যবহার করে সিরিয়ালাইজ করা)।

    • কলব্যাক

      ফাংশন ঐচ্ছিক

      callback প্যারামিটারটি এর মতো দেখাচ্ছে:

      () => void

    • রিটার্ন

      প্রতিশ্রুতি <void>

      Chrome 88+

      প্রতিশ্রুতি শুধুমাত্র ম্যানিফেস্ট V3 এর জন্য সমর্থিত এবং পরবর্তীতে, অন্যান্য প্ল্যাটফর্মকে কলব্যাক ব্যবহার করতে হবে।

  • সেট অ্যাকসেস লেভেল

    অকার্যকর

    প্রতিশ্রুতি Chrome 102+

    স্টোরেজ এলাকার জন্য পছন্দসই অ্যাক্সেস লেভেল সেট করে। ডিফল্ট শুধুমাত্র বিশ্বস্ত প্রসঙ্গ হবে.

    setAccessLevel ফাংশন এর মত দেখাচ্ছে:

    (accessOptions: object, callback?: function) => {...}

    • অ্যাক্সেস অপশন

      বস্তু

    • কলব্যাক

      ফাংশন ঐচ্ছিক

      callback প্যারামিটারটি এর মতো দেখাচ্ছে:

      () => void

    • রিটার্ন

      প্রতিশ্রুতি <void>

      প্রতিশ্রুতি শুধুমাত্র ম্যানিফেস্ট V3 এর জন্য সমর্থিত এবং পরবর্তীতে, অন্যান্য প্ল্যাটফর্মকে কলব্যাক ব্যবহার করতে হবে।

StorageChange

বৈশিষ্ট্য

  • নতুন মান

    যে কোন ঐচ্ছিক

    আইটেমের নতুন মান, নতুন মান থাকলে।

  • পুরানো মান

    যে কোন ঐচ্ছিক

    আইটেমের পুরানো মান, যদি একটি পুরানো মূল্য ছিল।

বৈশিষ্ট্য

local

local স্টোরেজ এলাকায় আইটেম প্রতিটি মেশিন স্থানীয় হয়.

টাইপ

স্টোরেজ এরিয়া এবং অবজেক্ট

বৈশিষ্ট্য

  • QUOTA_BYTES

    10485760

    প্রতিটি মানের এবং প্রতিটি কী এর দৈর্ঘ্যের JSON স্ট্রিংফিকেশন দ্বারা পরিমাপ করা ডেটার সর্বাধিক পরিমাণ (বাইটে) যা স্থানীয় স্টোরেজে সংরক্ষণ করা যেতে পারে। এই মান উপেক্ষা করা হবে যদি এক্সটেনশনের unlimitedStorage অনুমতি থাকে। যে আপডেটগুলি এই সীমা অতিক্রম করতে পারে তা অবিলম্বে ব্যর্থ হয় এবং একটি কলব্যাক ব্যবহার করার সময় runtime.lastError সেট করে, অথবা async/await ব্যবহার করলে একটি প্রত্যাখ্যাত প্রতিশ্রুতি।

managed

managed স্টোরেজ এলাকায় আইটেমগুলি ডোমেন প্রশাসক দ্বারা কনফিগার করা একটি এন্টারপ্রাইজ নীতি দ্বারা সেট করা হয় এবং এক্সটেনশনের জন্য শুধুমাত্র পঠনযোগ্য; এই নেমস্পেস পরিবর্তন করার চেষ্টা করলে একটি ত্রুটি দেখা দেয়। একটি নীতি কনফিগার করার তথ্যের জন্য, স্টোরেজ এলাকার জন্য ম্যানিফেস্ট দেখুন।

session

Chrome 102+ MV3+

session স্টোরেজ এলাকার আইটেমগুলি মেমরিতে সংরক্ষণ করা হয় এবং ডিস্কে স্থায়ী হবে না।

টাইপ

স্টোরেজ এরিয়া এবং অবজেক্ট

বৈশিষ্ট্য

  • QUOTA_BYTES

    10485760

    প্রতিটি মান এবং কী-এর গতিশীলভাবে বরাদ্দকৃত মেমরি ব্যবহার অনুমান করে পরিমাপ করে মেমরিতে যে ডেটা সংরক্ষণ করা যেতে পারে তার সর্বাধিক পরিমাণ (বাইটে)। যে আপডেটগুলি এই সীমা অতিক্রম করতে পারে তা অবিলম্বে ব্যর্থ হয় এবং একটি কলব্যাক ব্যবহার করার সময় runtime.lastError সেট করে, বা যখন একটি প্রতিশ্রুতি প্রত্যাখ্যান করা হয়।

sync

sync স্টোরেজ এলাকার আইটেমগুলি Chrome সিঙ্ক ব্যবহার করে সিঙ্ক করা হয়।

টাইপ

স্টোরেজ এরিয়া এবং অবজেক্ট

বৈশিষ্ট্য

  • MAX_ITEMS

    512

    সর্বাধিক সংখ্যক আইটেম যা সিঙ্ক সঞ্চয়স্থানে সংরক্ষণ করা যেতে পারে৷ যে আপডেটগুলি এই সীমা অতিক্রম করতে পারে সেগুলি অবিলম্বে ব্যর্থ হবে এবং একটি কলব্যাক ব্যবহার করার সময়, বা একটি প্রতিশ্রুতি প্রত্যাখ্যান করার সময় runtime.lastError সেট করবে৷

  • MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE

    1000000

    অবচয়

    store.sync API-এ আর একটি স্থায়ী লেখা অপারেশন কোটা নেই৷

  • MAX_WRITE_OPERATIONS_PER_HOUR

    1800

    set , remove বা clear অপারেশনের সর্বাধিক সংখ্যা যা প্রতি ঘন্টায় সম্পাদিত হতে পারে। এটি প্রতি 2 সেকেন্ডে 1, স্বল্পমেয়াদী উচ্চ রাইটিং-প্রতি-মিনিট সীমার চেয়ে কম সিলিং।

    যে আপডেটগুলি এই সীমা অতিক্রম করতে পারে তা অবিলম্বে ব্যর্থ হয় এবং একটি কলব্যাক ব্যবহার করার সময় runtime.lastError সেট করে, বা যখন একটি প্রতিশ্রুতি প্রত্যাখ্যান করা হয়।

  • MAX_WRITE_OPERATIONS_PER_MINUTE

    120

    set , remove বা clear অপারেশনের সর্বোচ্চ সংখ্যা যা প্রতি মিনিটে সম্পাদিত হতে পারে। এটি প্রতি সেকেন্ডে 2, অল্প সময়ের জন্য প্রতি ঘন্টায় লেখার চেয়ে বেশি থ্রুপুট প্রদান করে।

    যে আপডেটগুলি এই সীমা অতিক্রম করতে পারে তা অবিলম্বে ব্যর্থ হয় এবং একটি কলব্যাক ব্যবহার করার সময় runtime.lastError সেট করে, বা যখন একটি প্রতিশ্রুতি প্রত্যাখ্যান করা হয়।

  • QUOTA_BYTES

    102400

    প্রতিটি মানের এবং প্রতিটি কী এর দৈর্ঘ্যের JSON স্ট্রিংফিকেশন দ্বারা পরিমাপ করা ডেটার সর্বাধিক মোট পরিমাণ (বাইটে) যা সিঙ্ক স্টোরেজে সংরক্ষণ করা যেতে পারে। যে আপডেটগুলি এই সীমা অতিক্রম করতে পারে তা অবিলম্বে ব্যর্থ হয় এবং একটি কলব্যাক ব্যবহার করার সময় runtime.lastError সেট করে, বা যখন একটি প্রতিশ্রুতি প্রত্যাখ্যান করা হয়।

  • QUOTA_BYTES_PER_ITEM

    8192

    সিঙ্ক সঞ্চয়স্থানে প্রতিটি পৃথক আইটেমের সর্বোচ্চ আকার (বাইটে), যেমন JSON এর মান এবং এর কী দৈর্ঘ্যের স্ট্রিংফিকেশন দ্বারা পরিমাপ করা হয়। এই সীমার চেয়ে বড় আইটেম ধারণকারী আপডেটগুলি অবিলম্বে ব্যর্থ হবে এবং একটি কলব্যাক ব্যবহার করার সময় runtime.lastError সেট করবে, বা যখন একটি প্রতিশ্রুতি প্রত্যাখ্যান করা হবে।

ঘটনা

onChanged

chrome.storage.onChanged.addListener(
  callback: function,
)

এক বা একাধিক আইটেম পরিবর্তন হলে বহিস্কার করা হয়।

পরামিতি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মতো দেখাচ্ছে:

    (changes: object, areaName: string) => void

    • পরিবর্তন

      বস্তু

    • এলাকার নাম

      স্ট্রিং