localStorage は 5MB までしかサポートしていません。私たちのアプリケーションでは、localStorage の使用を計画しています (複数のタブをサポートしているため、sessionStorage は私たちのニーズには合いません)。現在、シリアライズされて localStorage に格納されている大きな JavaScript オブジェクトは 1 つだけです。将来的には最大 15 個のオブジェクトを超える可能性がありますが、それを超えることは絶対にありません。
問題は、localStorage をクリアすることです。私たちのアプリケーションでは、ユーザーが複数の方法 (SSO など) でログインできるようになっているためです。そのため、ログイン ページに到達しなくても、ユーザーはアプリケーションにログインでき、他のアプリケーションでサインオフすると、アプリケーションでもサインオフするか、ブラウザを閉じます。セキュリティ上の理由から、ユーザー セッションが終了したら localStorage を消去する必要があります。
そのため、personId を localStorage に格納することを計画しました。すべてのページ リクエストで、サーバーから personId を送信する html 応答と共に、localStorage の personId と一致しない場合は localStorage をクリアします。
ここでの私の疑問は、localStorage での検索は非同期ではないため、15 個のキー (値として大きな文字列を持つ) から personId を検索するのに時間がかかるのでしょうか?
localStorage.setItem("personId", 1234);
localStorage.setItem("object1", "A very big serialized form of javascript object gets stored");