স্থানীয় স্টোরেজ যেমন হয় তেমনিভাবে ইনডেক্সডডিবি কী-ভ্যালু স্টোর নয়। স্থানীয় স্টোরেজ কেবল স্ট্রিং সঞ্চয় করে, তাই স্থানীয় স্টোরেজে কোনও অবজেক্ট রাখার জন্য সাধারণ পন্থাটি 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 স্টোরের আকার বাড়াবেন না কেন?
কারণ, যথাযথ সূচিকরণ ছাড়াই এটি যত বড় হয়েছে তত ক্রমশ ধীর হয়ে উঠবে।