এইচটিএমএল 5 এ, স্থানীয় স্টোরেজ অবজেক্টটি কি পৃষ্ঠা / ডোমেনের জন্য বিচ্ছিন্ন?


172

এইচটিএমএল 5 লোকাল স্টোরেজ অবজেক্টটি কি প্রতি পৃষ্ঠায় / ডোমেনকে বিচ্ছিন্ন করে রাখা হয়েছে? আমি কীভাবে লোকালস্টোরেজ কীগুলির নাম রাখব সে কারণে আমি ভাবছি। আমার কি আলাদা উপসর্গ দরকার? বা আমি যা চাই তার নাম রাখতে পারি?


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

আইএমও এটি ব্যবহারকারীর স্ক্রিপ্ট যা পৃষ্ঠাগুলি নয়, সংঘর্ষ এড়ানো উচিত। আমার ব্যবহারকারীর স্ক্রিপ্টে আমি স্ক্রিপ্টের নামে একটি উপসর্গ ব্যবহার করছি।
ক্যামিলো মার্টিন

উত্তর:


195

এটি প্রতি ডোমেন এবং পোর্ট অনুসারে ( একই উত্স নীতি হিসাবে একই বিভাজন নিয়ম ), যাতে আপনাকে প্রতি পৃষ্ঠায় locationবা অন্য কোনও পদ্ধতির উপর ভিত্তি করে একটি কী ব্যবহার করতে হবে।

আপনার উপসর্গের দরকার নেই , যদি প্রয়োজন হয় তবে এটি ব্যবহার করুন। এছাড়াও, হ্যাঁ, আপনি যা খুশি তাদের নাম রাখতে পারেন।


77
এটি protocol://host:portসমন্বিত প্রতি অনন্য ।
থসমো

1
www.mysite.it:8012/app1 এবং www.mysite.it:8012/app2 স্থানীয় স্টোরেজ ভাগ করে নিয়েছে?
দারিওএন 1

3
@ ডারিওএন 1 হ্যাঁ, www.mysite.it:8012/app1 এবং www.mysite.it:8012/App2 স্থানীয় স্টোরেজ ভাগ করেছে। (ক্যাভিয়েট: আপনি যদি এগুলি বিভিন্ন প্রোটোকল, ইজি http বনাম https থেকে অ্যাক্সেস করেন তবে সেগুলি ভাগ করা হয় না same একই প্রোটোকল, সাবডোমেন, ডোমেন এবং পোর্ট - এর মধ্যে সেগুলি ভাগ করা হয় This এটি 'উত্স' এর ধারণার সরলকরণ। )
উইলিয়াম

31

দোকানে হয় উৎপত্তি প্রতি , যেখানে "উৎপত্তি" এর জন্য হিসাবে একই একই অরিজিন নীতি (স্কিমা [সংমিশ্রণ httpবনাম httpsইত্যাদি], পোর্ট, এবং হোস্ট)। অনুমান থেকে :

প্রতিটি শীর্ষ স্তরের ব্রাউজিং প্রসঙ্গে সেশনের স্টোরেজ অঞ্চলগুলির এক অনন্য সেট রয়েছে, প্রতিটি উত্সের জন্য একটি।

সুতরাং, স্টোরেজ http://a.example.comএবং স্টোরেজ http://b.example.comপৃথক পৃথক http://example.comহোস্ট হিসাবে (এবং তারা উভয় থেকে পৃথক )। একইভাবে, http://example.com:80এবং http://example.com:8080এবং https://example.comসমস্ত পৃথক উত্স হয়।

ওয়েব স্টোরেজটিতে এমন কোনও মেকানিজম তৈরি হয়নি যা এক উত্সকে অন্যটির স্টোরেজ অ্যাক্সেস করতে দেয়।

মনে রাখবেন যে এটির উত্স , ইউআরএল নয়, http://example.com/page1এবং http://example.com/page2উভয়েরই সঞ্চয়স্থানে অ্যাক্সেস রয়েছে http://example.com


3
এটি ব্যাপকভাবে লেখা হয়েছিল, এই উত্তরটি সর্বাধিক পছন্দ করেছে কারণ এটি পড়া এবং সম্পূর্ণরূপে ব্যাখ্যা করা সহজ, এমনকি যারা কেবল বিকাশ শুরু করবেন তাদের পক্ষেও।
বাহি

1
+1 উল্লেখ করার জন্য যে "ওয়েব স্টোরেজটিতে এমন কোনও মেকানিজম তৈরি হয়নি যা একটি উত্সকে অন্যের স্টোরেজ অ্যাক্সেস করতে দেয়।
ফ্যাবিয়েন কোয়াটারভাক্স

7

হ্যাঁ, প্রতিটি ডোমেন / সাবডোমেনের আলাদা লোকাল স্টোরেজ থাকে এবং আপনি যা চান তা কীগুলিতে কল করতে পারেন (উপসর্গের প্রয়োজন নেই)।

একটি কী পেতে আপনি পদ্ধতি কী (সূচক) যেমন ব্যবহার করতে পারেন

localStorage.key(0);

আপনার একাধিক লোকাল স্টোরেজ থাকতে পারে তার আগে এখানে গ্লোবাল স্টোরেজ নামে একটি অবজেক্ট ছিল তবে এটি চশমা থেকে অবহেলা করা হয়েছে


7

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

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

[অস্বীকৃতি] আমি ইউটিলিটির লেখক [/ অস্বীকৃতি]

উদাহরণ:

// instantiate our first storage object
// internally, all keys will use the specified prefix, i.e. passphrase.life
var localData = localDataStorage( 'passphrase.life' );

localData.set( 'key1', 'Belgian' )
localData.set( 'key2', 1200.0047 )
localData.set( 'key3', true )
localData.set( 'key4', { 'RSK' : [1,'3',5,'7',9] } )
localData.set( 'key5', null )

localData.get( 'key1' )   -->   'Belgian'
localData.get( 'key2' )   -->   1200.0047
localData.get( 'key3' )   -->   true
localData.get( 'key4' )   -->   Object {RSK: Array(5)}
localData.get( 'key5' )   -->   null


// instantiate our second storage object
// internally, all keys will use the specified prefix, i.e. prismcipher.com
var localData2 = localDataStorage( 'prismcipher.com' );

localData2.set( 'key1', 123456789 )  // integer

localData2.get( 'key1' )   -->   123456789

আপনি দেখতে পাচ্ছেন, আদিম মানগুলি সম্মানিত হয় এবং আপনি আপনার স্টোরেজ নিয়ন্ত্রণ করতে বেশ কয়েকটি দৃষ্টান্ত তৈরি করতে পারেন।


0

নিকের পরামর্শ অনুসারে এটি সেই ডোমেনের যে কোনও জায়গায় পাওয়া যায়, বিকল্প হিসাবে সেশনসটরেজ কিছুটা আলাদাভাবে কাজ করে যে এটি ব্রাউজার উইন্ডো থেকে আলাদা। এর অর্থ এটি হ'ল একই ডোমেনের অন্যান্য ট্যাব বা উইন্ডোগুলির স্টোরেজ অবজেক্টের একই অনুলিপিটিতে অ্যাক্সেস নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.