স্থানীয় স্টোরেজ মানগুলির সর্বোচ্চ আকার কত?


542

যেহেতু localStorage(বর্তমানে) কেবল স্ট্রিংগুলিকে মান হিসাবে সমর্থন করে এবং বস্তুগুলি সংরক্ষণের আগে জেএসওএন-স্ট্রিং হিসাবে সংরক্ষণ করা প্রয়োজন, তাই মানগুলির দৈর্ঘ্য সম্পর্কিত কোনও নির্ধারিত সীমাবদ্ধতা রয়েছে?

এমন কোনও সংজ্ঞা রয়েছে যা সমস্ত ব্রাউজারগুলিতে প্রযোজ্য তা কি কেউ জানেন?


15
আমি মনে করি আসলে "সর্বোচ্চ মূল্য প্রতি দৈর্ঘ্য" প্রশ্নের উত্তর কেউ দেয়নি।
পিট অ্যালভিন

@ পেটআলভিন আমি কেবল প্রশ্নের উত্তর দিয়েছি ।
ব্যবহারকারী 2428118


@ পেটআলভিন কেউ 2015 সালে এটির উত্তর দিয়েছিল The অন্য উত্তরগুলি মোট আকারের সীমাটি দেখায় , তবে মান অনুসারে কোন আকারের সীমা নয় ।
আলী

উত্তর:


421

ওয়েব স্টোরেজ উইকিপিডিয়া নিবন্ধ থেকে উদ্ধৃতি :

ওয়েব স্টোরেজটিকে কুকিগুলির উন্নতি হিসাবে সরলভাবে দেখা যেতে পারে, গুগল ক্রোমে উত্স অনুসারে 10 এমবি ( https://plus.google.com/u/0/+FrancoisBeaufort/posts/S5Q9HqDB8bh ), মজিলা ফায়ারফক্স , এবং অপেরা; ইন্টারনেট এক্সপ্লোরারে প্রতি স্টোরেজ ক্ষেত্রের জন্য 10 এমবি ) এবং আরও উন্নত প্রোগ্রামেটিক ইন্টারফেস।

এবং জন রেসিগের একটি নিবন্ধ থেকে উদ্ধৃত করে [জানুয়ারী 2007 পোস্ট করা]:

স্টোরেজ স্পেস

এটি বোঝানো হয়েছে যে, ডিওএম স্টোরেজ সহ আপনার কুকিজের উপর চাপানো সাধারণ ব্যবহারকারী এজেন্টের সীমাবদ্ধতার চেয়ে যথেষ্ট পরিমাণে সঞ্চয় স্থান রয়েছে। তবে যে পরিমাণ সরবরাহ করা হয়েছে তা নির্দিষ্টকরণে সংজ্ঞায়িত করা হয়নি, বা এটি ব্যবহারকারী এজেন্ট দ্বারা অর্থবহভাবে সম্প্রচারিত নয়।

আপনি যদি মজিলা উত্স কোডটি দেখেন তবে আমরা দেখতে পাচ্ছি যে 5120KB একটি সম্পূর্ণ ডোমেনের জন্য ডিফল্ট স্টোরেজ আকার। এটি আপনাকে একটি সাধারণ 2KB কুকির চেয়ে বেশি কাজ করার সুযোগ দেয়।

যাইহোক, এই স্টোরেজ ক্ষেত্রের আকারটি ব্যবহারকারী কাস্টমাইজ করতে পারে (সুতরাং 5MB স্টোরেজ এরিয়ার কোনও গ্যারান্টি দেওয়া হয় না, এটিই বোঝানো হয় না) এবং ব্যবহারকারী এজেন্ট (উদাহরণস্বরূপ, কেবলমাত্র 3MB সরবরাহ করতে পারে - তবে কেবল সময়ই তা বলে দেবে। )


28
@ কুপিডোভেল নং, এর অর্থ প্রতিটি domain( origin) কোনও স্বতন্ত্র ক্লায়েন্টের জন্য 5 এমবি সঞ্চয় করতে পারে। ডেটা ক্লায়েন্ট মেশিনে সঞ্চয় করা হয় - কোনও localStorageউপায়েই ক্লায়েন্টগুলির মধ্যে প্রক্রিয়াটি ইন্টারঅ্যাক্ট করে না ।
ড্যানিয়েলবি

6
না, আমি কেবল একই ডোমেনের একাধিক পৃষ্ঠায় একই ডেটা অ্যাক্সেসযোগ্য তা নিশ্চিত করতে চেয়েছিলাম। প্রায়শই আমি বাক্যাংশগুলির ডোমেন এবং পৃষ্ঠার বানানটি সমার্থকভাবে খুঁজে পাই, তাই নিশ্চিতভাবে জানতে চাইলাম!
সেক্সিবিস্ট

9
তবে কি একক মানের একটি সীমাবদ্ধতা আছে ? (আমার কাছে যদি প্রচুর পতাকা সংরক্ষণ করতে হয় তবে এটি কোনও একক সম্পত্তিতে এটি JSON হিসাবে সংরক্ষণ করা কতটা নিরাপদ?)
phtrivier

5
আমি সাফারি 5 এমবিতে পেয়েছি এবং ক্রোম 39 মিনিটে 10 এমবি (কখন এটি 5 এমবি থেকে উত্সাহ
অ্যালি

18
@ কুপিডোভেল: না, এটি ডোমেন দ্বারা নয় , এটি উত্স অনুসারে , শব্দটি একই উত্স নীতি এবং যেমন: স্কিম + হোস্ট + বন্দর হিসাবে ব্যবহৃত হয়। http://example.comএবং https://example.comএকই উত্স নয় (বিভিন্ন স্কিম)। http://example.comএবং http://www.example.comএকই উত্স নয় (বিভিন্ন হোস্ট)। http://example.comএবং http://example.com:8080একই উত্স নয় (বিভিন্ন বন্দর)। আছে HTH। :-)
টিজে ক্রাউডার

133

আসলে অপেরাতে 5MB সীমা নেই। অ্যাপ্লিকেশনগুলির আরও বেশি প্রয়োজন হওয়ায় এটি সীমা বাড়ানোর প্রস্তাব করে। এমনকি ব্যবহারকারী কোনও ডোমেনের জন্য "আনলিমিটেড স্টোরেজ" চয়ন করতে পারেন।

আপনি সহজেই স্থানীয় স্টোরেজ সীমা / কোটা পরীক্ষা করতে পারেন ।


50
ক্রোমকে আর ক্র্যাশ করে না ... আকর্ষণীয় বিষয়: 5 এমবি ক্রোমের 2.5 মিলিয়ন অক্ষরের সমান। সুতরাং স্পষ্টতই, ইউএফটি 16 স্থানীয় স্টোরের জন্য ব্যবহৃত হয়।
ফেলিক্স আলকালা

1
@ ফেলিক্স অ্যালকালা দুর্ভাগ্যক্রমে, এটি ম্যাক ওএস এক্সে ক্রোম 15.0.874.54 বিটা ক্র্যাশ করেছে 1.5 1.500.000 অক্ষরে আমার ক্রাশ হয়েছিল।
ইভান ভুইকা

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

6
@ ফেলিক্স অ্যালকালা - আসলে, জাভাস্ক্রিপ্ট উন্মোচিত হয়েছে UCS-2। এটির সাথে মিল UFT16রয়েছে এমন কিছু খুব গুরুত্বপূর্ণ পার্থক্য রয়েছে ... বেশিরভাগ ক্ষেত্রে ঘুরিয়ে ফেলা হয় যে ইউসিএস -২ ইউএফটি-র পূর্বাভাস দেয়।
জেরেমি জে স্টারচার

@ ফেলিক্স অ্যালকালা আপনি কী ভাবেন যে কতগুলি অক্ষর পাশাপাশি তার ডিস্ক আকারের সমতুল্য (যেমন 2,700 কে অক্ষর 5 = 5,274 কেবি) প্রদর্শন করা ভাল ধারণা?
এজে হু

76

সীমাটি সন্ধানের জন্য এখানে একটি সরল স্ক্রিপ্ট রয়েছে:

if (localStorage && !localStorage.getItem('size')) {
    var i = 0;
    try {
        // Test up to 10 MB
        for (i = 250; i <= 10000; i += 250) {
            localStorage.setItem('test', new Array((i * 1024) + 1).join('a'));
        }
    } catch (e) {
        localStorage.removeItem('test');
        localStorage.setItem('size', i - 250);            
    }
}

এখানে সারকথা , JSFiddle এবং ব্লগ পোস্টের

স্ক্রিপ্টটি ব্রাউজারটি ছুঁড়ে দেওয়া এবং ব্যতিক্রম না হওয়া পর্যন্ত পাঠ্যের বড় আকারের স্ট্রিং সেটিংসের পরীক্ষা করবে। এই মুহুর্তে এটি পরীক্ষার ডেটা সাফ করে দেবে এবং লোকালস্টোরারে একটি আকার কী সেট করবে যা কিলোবাইটে আকার সংরক্ষণ করবে।


1
শীতল সমাধান। আমি এই একটি লাইনার পেয়েছি , আপনি কি মনে করেন?
brasofilo

2
@ ব্রাজোফিলো আমি মনে করি যে একটি লাইনার ধরে ধরেছে আপনার 5MB আছে এবং তারপরে ব্যবহৃত পরিমাণটি বিয়োগ করে।
সিডিএমকেই

ওওওক, নিশ্চিত শট আপনার কোডটি নিয়ে আমি যে সমস্যাটি নিয়ে আসছি তা সঠিকভাবে জাভাস্ক্রিপ্টে কেবি, এমবি, গিগাবাইটে আকারে বাইটে রূপান্তর করার সঠিক পদ্ধতিতে সঠিক ফলাফল পেতে সক্ষম হচ্ছে না ... আমি আগামীকাল এটিকে সংশোধন করব তবে যদি আপনি একবার দেখতে পারেন তবে প্রশংসা করেন।
brasofilo

1
কর্মক্ষমতা এবং এই উত্তরটি মান উন্নত এখানে
smnbbrv

এটি ২০২০ এবং এই উত্তরটি ভিনিলা ক্রোম এবং ফায়ারফক্স, উইন 10 এ পুরোপুরি সূক্ষ্মভাবে কাজ করে, আকার = 5000 দেয়।
এ। চিয়াসা

34

সঞ্চিত হতে পারে এমন একক স্ট্রিংয়ের সর্বাধিক দৈর্ঘ্য সন্ধান করুন localStorage

এই স্নিপেটটি স্ট্রিংয়ের সর্বাধিক দৈর্ঘ্য খুঁজে পাবেন যা localStorageপ্রতি ডোমেনে সঞ্চয় করা যায় ।

//Clear localStorage
for (var item in localStorage) delete localStorage[item];

window.result = window.result || document.getElementById('result');

result.textContent = 'Test running…';

//Start test
//Defer running so DOM can be updated with "test running" message
setTimeout(function () {

    //Variables
    var low = 0,
        high = 2e9,
        half;

    //Two billion may be a little low as a starting point, so increase if necessary
    while (canStore(high)) high *= 2;


    //Keep refining until low and high are equal
    while (low !== high) {
        half = Math.floor((high - low) / 2 + low);

        //Check if we can't scale down any further
        if (low === half || high === half) {
            console.info(low, high, half);
            //Set low to the maximum possible amount that can be stored 
            low = canStore(high) ? high : low;
            high = low;
            break;
        }


        //Check if the maximum storage is no higher than half
        if (storageMaxBetween(low, half)) {
            high = half;
            //The only other possibility is that it's higher than half but not higher than "high"
        } else {
            low = half + 1;
        }

    }

    //Show the result we found!
    result.innerHTML = 'The maximum length of a string that can be stored in localStorage is <strong>' + low + '</strong> characters.';

    //Functions
    function canStore(strLen) {
        try {
            delete localStorage.foo;
            localStorage.foo = Array(strLen + 1).join('A');
            return true;
        } catch (ex) {
            return false;
        }
    }


    function storageMaxBetween(low, high) {
        return canStore(low) && !canStore(high);
    }

}, 0);
<h1>LocalStorage single value max length test</h1>

<div id='result'>Please enable JavaScript</div>

নোট করুন যে জাভাস্ক্রিপ্টে একটি স্ট্রিংয়ের দৈর্ঘ্য সীমিত; আপনি যদি localStorageএকক স্ট্রিংয়ের মধ্যে সীমাবদ্ধ না হয়ে সঞ্চিত থাকতে পারেন এমন সর্বোচ্চ পরিমাণের ডেটা দেখতে চান , আপনি এই উত্তরে কোডটি ব্যবহার করতে পারেন

সম্পাদনা: স্ট্যাক স্নিপেটগুলি সমর্থন করে না localStorage, তাই এখানে জেএসফিডেলের লিঙ্ক

ফলাফল

ক্রোম (45.0.2454.101): 5242878 অক্ষর
ফায়ারফক্স (40.0.1): 5242883 টি অক্ষর
ইন্টারনেট এক্সপ্লোরার (11.0.9600.18036) :16386 122066 122070 টি অক্ষর

আমি ইন্টারনেট এক্সপ্লোরার প্রতিটি রান বিভিন্ন ফলাফল পেতে।


1
মজার, তবে আমি যখন 1 মিনিট দৌড়ানোর পরে এজ ব্রাউজারে (উইন 10 তে) পরীক্ষা করি তখন আপনার সাধারণ পরীক্ষাটি আমার দুর্দান্ত শক্তিশালী সিস্টেমটি থামায়। সুতরাং আমি আপনার ফলাফলগুলিতে নতুন ডেটা যুক্ত করতে পারি না))
ভাতাবলে

33

মোবাইল ব্রাউজারগুলি:

Browser    | Chrome    | Android Browser    | Firefox     | iOS Safari
Version    | 40        | 4.3                | 34          | 6-8
Available  | 10MB      | 2MB                | 10MB        | 5MB

ডেস্কটপ ব্রাউজারগুলি:

Browser    | Chrome   | Opera    | Firefox    | Safari      | IE
Version    | 40       | 27       | 34         | 6-8         | 9-11
Available  | 10MB     | 10MB     | 10MB       | 5MB         | 10MB

রেফারেন্স লিংক


6
নম্বরগুলি কোথা থেকে আসছে?
মিঃডি

23
ক্রম
ল্যাং

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

3
@ ক্রিসল্যাং যোগ করেছে লিঙ্ক
বহনম মোহাম্মদী

1
@ মালাভোস লিঙ্ক যুক্ত করেছে
বেহনম মোহাম্মদী

26

5MB উপলব্ধ বলে ধরে নিবেন না - লোকালস্টোরেজের ক্ষমতা ব্রাউজারের দ্বারা পরিবর্তিত হয়, 2.5MB, 5MB এবং সীমাহীন সর্বাধিক সাধারণ মান হিসাবে। সূত্র: http://dev-test.nemikor.com/web-stores/support-test/


13

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

পরিবর্তে, আপনি রাবু ব্যবহার করতে পারেন । এটি প্রচুর লোকাল স্টোরেজ এন্ট্রি ব্যবহার করে বৃহত অবজেক্টগুলি সঞ্চয় করে যাতে আপনি দ্রুত ছোট পরিবর্তন করতে পারেন। পুনরুদ্ধার করা অবজেক্টসগুলি সংরক্ষিতগুলির অনেক বেশি সঠিক অনুলিপি এবং এপিআই অবিশ্বাস্যরকম সহজ। উদাহরণ:

var store = Rhaboo.persistent('Some name');
store.write('count', store.count ? store.count+1 : 1);
store.write('somethingfancy', {
  one: ['man', 'went'],
  2: 'mow',
  went: [  2, { mow: ['a', 'meadow' ] }, {}  ]
});
store.somethingfancy.went[1].mow.write(1, 'lawn');

বিটিডব্লিউ, আমি এটি লিখেছিলাম।


1
ধন্যবাদ মার্টিন আপনি আমার 'ইভন' রেপোটিও পরীক্ষা করতে পারেন। এটি এখনই কেবল সিরিয়ালাইজার এবং কালি খুব ভিজা, তবে এটি রাবু এবং সমানভাবে বহুমুখী তুলনায় দ্রুত। অভ্যন্তরীণভাবে এটি ব্যবহারের জন্য রাবু শীঘ্রই রূপান্তরিত হবে।
অ্যাড্রিয়ান মে

7
দরকারী তবে আমি মনে করি না যে এটি "লোকালস্টোরেজের সর্বাধিক আকার কী?" আপনার লাইব্রেরি যখন আকারের সীমা ছাড়িয়ে কিছু সংরক্ষণ করার চেষ্টা করে এবং কীভাবে এটিতে প্রতিক্রিয়া জানানো হয় তখন কী হয় তা উল্লেখ করে আপনার উত্তরটি উন্নত হতে পারে।
ক্রিস মোসচিনি

6

আমি নিম্নলিখিতগুলি করছি:

getLocalStorageSizeLimit = function () {

    var maxLength = Math.pow(2,24);
    var preLength = 0;
    var hugeString = "0";
    var testString;
    var keyName = "testingLengthKey";

    //2^24 = 16777216 should be enough to all browsers
    testString = (new Array(Math.pow(2, 24))).join("X");

    while (maxLength !== preLength) {
        try  {
            localStorage.setItem(keyName, testString);

            preLength = testString.length;
            maxLength = Math.ceil(preLength + ((hugeString.length - preLength) / 2));

            testString = hugeString.substr(0, maxLength);
        } catch (e) {
            hugeString = testString;

            maxLength = Math.floor(testString.length - (testString.length - preLength) / 2);
            testString = hugeString.substr(0, maxLength);
        }
    }

    localStorage.removeItem(keyName);

    maxLength = JSON.stringify(this.storageObject).length + maxLength + keyName.length - 2;

    return maxLength;
};

5
মারুন মারুন: পোস্টটি আবার চেক করুন, স্থানীয় সঞ্চয়স্থানের সর্বাধিক আকার পরীক্ষা করার জন্য লেখক কোড সরবরাহ করেছেন। এটি একটি বৈধ উত্তর বলে মনে হচ্ছে, অন্য কোনও প্রশ্ন নয়।
আরেন্ড করুন

এই কোডগুলি কার্যকর করে লেখার সময় হিসাবে ক্রোমে একটি "অবৈধ রিটার্ন স্টেটমেন্ট" ত্রুটি
ছুড়ে ফেলেছে

6

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

function getLocalStorageMaxSize(error) {
  if (localStorage) {
    var max = 10 * 1024 * 1024,
        i = 64,
        string1024 = '',
        string = '',
        // generate a random key
        testKey = 'size-test-' + Math.random().toString(),
        minimalFound = 0,
        error = error || 25e4;

    // fill a string with 1024 symbols / bytes    
    while (i--) string1024 += 1e16;

    i = max / 1024;

    // fill a string with 'max' amount of symbols / bytes    
    while (i--) string += string1024;

    i = max;

    // binary search implementation
    while (i > 1) {
      try {
        localStorage.setItem(testKey, string.substr(0, i));
        localStorage.removeItem(testKey);

        if (minimalFound < i - error) {
          minimalFound = i;
          i = i * 1.5;
        }
        else break;
      } catch (e) {
        localStorage.removeItem(testKey);
        i = minimalFound + (i - minimalFound) / 2;
      }
    }

    return minimalFound;
  }
}

পরীক্ষা করার জন্য:

console.log(getLocalStorageMaxSize()); // takes .3s
console.log(getLocalStorageMaxSize(.1)); // takes 2s, but way more exact

এটি স্ট্যান্ডার্ড ত্রুটির জন্য নাটকীয়ভাবে দ্রুত কাজ করে; প্রয়োজনে এটি আরও অনেক বেশি সঠিক হতে পারে।


6

আমি এই ফাংশনটিতে বাইনারি পরীক্ষা কনডেন্স করেছি যা আমি ব্যবহার করি:

function getStorageTotalSize(upperLimit/*in bytes*/) {
    var store = localStorage, testkey = "$_test"; // (NOTE: Test key is part of the storage!!! It should also be an even number of characters)
    var test = function (_size) { try { store.removeItem(testkey); store.setItem(testkey, new Array(_size + 1).join('0')); } catch (_ex) { return false; } return true; }
    var backup = {};
    for (var i = 0, n = store.length; i < n; ++i) backup[store.key(i)] = store.getItem(store.key(i));
    store.clear(); // (you could iterate over the items and backup first then restore later)
    var low = 0, high = 1, _upperLimit = (upperLimit || 1024 * 1024 * 1024) / 2, upperTest = true;
    while ((upperTest = test(high)) && high < _upperLimit) { low = high; high *= 2; }
    if (!upperTest) {
        var half = ~~((high - low + 1) / 2); // (~~ is a faster Math.floor())
        high -= half;
        while (half > 0) high += (half = ~~(half / 2)) * (test(high) ? 1 : -1);
        high = testkey.length + high;
    }
    if (high > _upperLimit) high = _upperLimit;
    store.removeItem(testkey);
    for (var p in backup) store.setItem(p, backup[p]);
    return high * 2; // (*2 because of Unicode storage)
}

এটি পরীক্ষার আগে সামগ্রীগুলিকে ব্যাক আপ করে, তারপরে সেগুলি পুনরুদ্ধার করে।

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

upperLimitডিফল্ট হিসাবে 1 গিগাবাইট, এবং বাইনারি অনুসন্ধান শুরু করার আগে তাত্পর্যপূর্ণভাবে স্ক্যান করতে কতদূর উপরে সীমাবদ্ধ। আমি সন্দেহ করি এটি এমনকি পরিবর্তন করা প্রয়োজন, কিন্তু আমি সবসময় সামনে চিন্তা করি। ;)

Chrome এ:

> getStorageTotalSize();
> 10485762
> 10485762/2
> 5242881
> localStorage.setItem("a", new Array(5242880).join("0")) // works
> localStorage.setItem("a", new Array(5242881).join("0")) // fails ('a' takes one spot [2 bytes])

আইই ১১, এজ এবং ফায়ারফক্সও একই সর্বোচ্চ আকারের (10485762 বাইট) প্রতিবেদন করে report


1
(এবং localStorage.Clear()আপনার পরীক্ষার আগে এবং পরে ভুলে যাবেন না
সিমোনমিসুন

5

রিয়েল-টাইমে স্টোরেজ কোটা (মোট & ব্যবহৃত) দক্ষতার সাথে পরীক্ষা করতে আপনি আধুনিক ব্রাউজারগুলিতে নিম্নলিখিত কোডগুলি ব্যবহার করতে পারেন:

if ('storage' in navigator && 'estimate' in navigator.storage) {
        navigator.storage.estimate()
            .then(estimate => {
                console.log("Usage (in Bytes): ", estimate.usage,
                            ",  Total Quota (in Bytes): ", estimate.quota);
            });
}

ক্রোমের পক্ষে ভাল কাজ করে না। Usage (in Bytes): 647 , Total Quota (in Bytes): 32901464711 মোট আকার সম্ভব আসলে 10485762. হয়, যেন ভুল
জেমস উইলকিন্স

1

একবার আমি ক্রোম (ডেস্কটপ ব্রাউজার) এক্সটেনশানটি বিকাশ করেছিলাম এবং এই কারণে লোকাল স্টোরেজটির আসল সর্বাধিক আকার পরীক্ষা করেছিলাম ।

আমার ফলাফল:

Ubuntu 18.04.1 LTS (64-bit)
Chrome 71.0.3578.98 (Official Build) (64-bit)
Local Storage content size 10240 KB (10 MB)

10240 KBব্যবহারের চেয়ে বেশি আমাকে ত্রুটি ফিরিয়ে দিয়েছে:

আনকচড ডোমেক্সেপশন: 'স্টোরেজ'-এ' সেট আইটেম 'কার্যকর করতে ব্যর্থ:' নোটগুলির মান সেট করা কোটা ছাড়িয়েছে।


0

আমি এই সহজ কোডটি লিখেছি যা লোকালস্টোরেজের আকার বাইটে পরীক্ষা করছে।

https://github.com/gkucmierz/Test-of-localStorage-limits-quota

const check = bytes => {
  try {
    localStorage.clear();
    localStorage.setItem('a', '0'.repeat(bytes));
    localStorage.clear();
    return true;
  } catch(e) {
    localStorage.clear();
    return false;
  }
};

গিথুব পৃষ্ঠাগুলি:

https://gkucmierz.github.io/Test-of-localStorage-limits-quota/

আমার ডেস্কটপ ক্রোম, অপেরা, ফায়ারফক্স, সাহসী এবং মোবাইল ক্রোমে একই ফলাফল রয়েছে যা M 5Mbytes

এখানে চিত্র বর্ণনা লিখুন

এবং সাফারি অর্ধেক ছোট ফলাফল ~ 2Mbytes

এখানে চিত্র বর্ণনা লিখুন

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