ホームページ > 記事 > ウェブフロントエンド > localstorage がデータを正常に保存できないのはなぜですか?
ローカルストレージへのデータの保存が常に失敗するのはなぜですか?特定のコード例が必要です
フロントエンド開発では、ユーザー エクスペリエンスを向上させ、その後のデータ アクセスを容易にするために、ブラウザー側にデータを保存する必要があることがよくあります。 Localstorage は、クライアント側のデータ ストレージ用に HTML5 によって提供されるテクノロジであり、データを保存し、ページが更新または閉じられた後にデータの永続性を維持するための簡単な方法を提供します。
ただし、データ ストレージにローカルストレージを使用すると、ストレージ障害が発生することがあります。では、なぜローカルストレージへのデータの保存が失敗するのでしょうか?以下では、localstorage ストレージ障害の考えられる原因をいくつか検討し、具体的なコード例を示します。
以下は、ストレージ領域のサイズを確認するサンプル コードです:
function checkStorageSpace() { var storageSpace = 0; for (var i = 0; i < localStorage.length; i++) { var key = localStorage.key(i); var value = localStorage.getItem(key); storageSpace += key.length + value.length; } return storageSpace; } var data = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."; if (checkStorageSpace() + data.length <= 5 * 1024 * 1024) { localStorage.setItem("data", data); }
上記のコードでは、ローカルストレージを走査する関数 checkStorageSpace()
を定義します。すべてのデータのサイズを計算します。次に、保存するデータ data
を定義し、現在のストレージ容量が十分であるかどうかを判断して、データをローカルストレージに保存するかどうかを決定します。
データを文字列型に変換するサンプル コードを次に示します。
var data = { name: "John", age: 25, email: "john@example.com" }; localStorage.setItem("data", JSON.stringify(data));
上記のコードでは、オブジェクト data
を定義し、## を使用します。 #JSON.stringify() メソッドで文字列型に変換し、ローカルストレージに保存します。
メソッドを呼び出すと、ストレージ イベントが直接トリガーされます。 。ブラウザの現在のストレージ容量がいっぱいであるか、ユーザーがローカルストレージを無効にしている場合、ストレージ障害が発生します。
function checkLocalStorageAvailability() { try { var testKey = "__test__"; localStorage.setItem(testKey, testKey); localStorage.removeItem(testKey); return true; } catch (e) { return false; } } if (checkLocalStorageAvailability()) { localStorage.setItem("data", "Lorem ipsum dolor sit amet, consectetur adipiscing elit."); } else { alert("Localstorage is not available!"); }上記のコードでは、関数
checkLocalStorageAvailability() を定義して、ローカルストレージの保存を試みます。キーをテストし、すぐに削除します。この操作が成功すると、ローカルストレージが使用可能になります。
以上がlocalstorage がデータを正常に保存できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。