前提・実現したいこと
ページ読み込み時にローカルストレージの容量を取得し、それに応じた処理を行いたいです。
発生している問題
ローカルストレージの容量が取得できません
該当のソースコード
最終的にはこの流れで、currentSize として取得した容量に対して、処理をわけようと考えています。
window.onload = function() { if (!window.localStorage) { alert("LocalStorageがサポートされていないため、本ページは利用できません。"); return; } var currentSize = start(); if( currentSize <= 100 ){ // 処理A } else if( currentSize >= 101 ){ // 処理B } }
試したこと
上のコードのための start() などがこちらです。
var ls = window.localStorage; var stringLength = 100 * 1024; // 100KB var string = ""; var stringByte = 0; for (var i = 0; i < stringLength; i++) { string += "あ"; if (escape("あ".charAt(0)).length < 4) { stringByte++; } else { stringByte += 2; } } console.log(string.length); console.log(escape(string.charAt(0))); var currentSize = 0; var currentKey = 0; var consoleArea = document.getElementById("console"); var timer = null; function start(){ console.log("start called."); ls.clear(); timer = setInterval(function(){ try { var key = "key"+(currentKey++); ls.removeItem(key); ls.setItem(key, string); currentSize += stringByte; consoleArea.innerHTML = Math.floor(currentSize/1024) + "KB stored.<br>"; } catch(error) { console.log(error); consoleArea.innerHTML += "Error Occurred. error=" + error + "<br>"; clearTimeout(timer); clearStorage(); } }, 50); return currentSize; }; function clearStorage(){ console.log("clear called"); ls.clear(); currentSize = 0; currentKey = 0; }; window.onload = function() { if (!window.localStorage) { alert("LocalStorageがサポートされていないため、本ページは利用できません。"); return; } var currentSize = start(); if( currentSize <= 100 ){ // 処理A } else if( currentSize >= 101 ){ // 処理B } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/15 05:23
2019/11/15 05:53
2019/11/15 06:40
2019/11/15 06:52
2019/11/17 06:12