স্থানীয় স্টোরেজ যেমন হয় তেমনিভাবে ইনডেক্সডডিবি কী-ভ্যালু স্টোর নয়। স্থানীয় স্টোরেজ কেবল স্ট্রিং সঞ্চয় করে, তাই স্থানীয় স্টোরেজে কোনও অবজেক্ট রাখার জন্য সাধারণ পন্থাটি JSON. স্ট্রিংফাই করুন:
myObject = {a: 1, b: 2, c: 3};
localStorage.setItem("uniq", JSON.stringify(myObject));
কী দিয়ে অবজেক্টটি সন্ধানের জন্য এটি ঠিক আছে uniq
তবে মাইওজেক্টের বৈশিষ্ট্যগুলি স্থানীয় স্টোরেজ থেকে ফিরে পাওয়ার একমাত্র উপায় হ'ল জেএসওএন ars
var myStorageObject = JSON.parse(localStorage.getItem("uniq"));
window.alert(myStorageObject.b);
স্থানীয় স্টোরেজে আপনার যদি কেবল একটি, বা কয়েকটি অবজেক্ট থাকে তবে এটি ঠিক আছে। তবে কল্পনা করুন আপনার এক হাজার অবজেক্ট রয়েছে, যার মধ্যে একটির একটি সম্পত্তি আছে b
এবং আপনি যেখানে ঠিক সেখানে কিছু করতে চান b==2
। স্থানীয় স্টোরেজ সহ আপনাকে পুরো স্টোরটি লুপ করতে হবে এবং b
প্রতিটি আইটেম যাচাই করতে হবে, এটি প্রচুর অপচয়যোগ্য প্রক্রিয়াজাতকরণ।
ইনডেক্সডডিবি দিয়ে আপনি মানটিতে স্ট্রিং ব্যতীত স্টাফ সঞ্চয় করতে পারেন : "এটিতে ডিওএমএসস্ট্রিং এবং তারিখের মতো সাধারণ প্রকারের পাশাপাশি অবজেক্ট এবং অ্যারে উদাহরণ রয়েছে।" কেবল তা-ই নয়, আপনি যে মানগুলিতে সঞ্চিত করেছেন সেগুলির বৈশিষ্ট্যের উপর আপনি সূচকগুলি তৈরি করতে পারেন । সুতরাং ইনডেক্সডিবির সাহায্যে আপনি সেই একই হাজার হাজার বস্তুগুলিকে এতে স্থাপন করতে পারেন তবে b
সম্পত্তির উপর একটি সূচক তৈরি করতে পারেন এবং কেবলমাত্র স্টোরগুলিতে b==2
স্টোরের প্রতিটি বস্তুর স্ক্যান করার ওভারহেড ছাড়াই অবজেক্টগুলি পুনরুদ্ধার করতে পারেন ।
অন্তত এই ধারণা। ইনডেক্সডডিবি এপিআই খুব স্বজ্ঞাত নয়।
এ্যাসিঙ্ক কলগুলি করার মতো তারা একই থ্রেডে চালিত হতে পারে। এটি কীভাবে ইউআইকে আটকাবে না?
অ্যাসিঙ্ক্রোনাস মাল্টি-থ্রেডের মতো একই জিনিস নয়, জাভা স্ক্রিপ্ট, একটি নিয়ম হিসাবে, বহু-থ্রেডযুক্ত নয় । আপনি জেএসে যে কোনও ভারী প্রক্রিয়াকরণ করবেন তা ইউআইকে ব্লক করে দেবে, আপনি যদি ইউআই ব্যবহার বন্ধ করে দিতে চান তবে ওয়েব কর্মীদের চেষ্টা করুন ।
indexedDB একটি বৃহত স্টোর অনুমতি দেয়। এইচটিএমএল 5 স্টোরের আকার বাড়াবেন না কেন?
কারণ, যথাযথ সূচিকরণ ছাড়াই এটি যত বড় হয়েছে তত ক্রমশ ধীর হয়ে উঠবে।