概要: システムにログインすると、いくつかの情報を設定するページがあり、情報を設定した後は引き続き他のページを操作できますが、私の一般的な操作習慣はタブを 2 つ開くことです、1 つのタブは設定ページが常に開いており、もう 1 つのタブは操作ページです。
要件 1: 現在、いくつかの構成情報を sessionStorage に入力していますが、2 つのタブの
sessionstorage は共有されず、現在のページ構成のみが共有されます。
localStorage を使用しないのは、設定情報が常に保存され、次回ログイン後は更新されないためです。
要件 2: フロント デスクが sessionStorage 内の情報を取得するための現在のロジックは次のとおりです。
item が存在し、空でない場合、直接使用されます。バックグラウンドで取得することはありません。問題は、マルチクライアントのシナリオでは、他のユーザーが構成を変更しており、現在のクライアントが最新の構成情報を時間内に取得できないことです。
http 3xx に基づいたアイデア。フロントエンドが構成情報を取得するたびに、バックグラウンドでリクエストが行われます。
lastmodifiedtime が変更されない場合は、ローカル データを使い続けます。変更すると、最新の構成情報が返されます。何か良い提案はありますか? 共有してください。
仅有的幸福2017-05-19 10:13:00
そのような必要に直面した場合、私はどうしますか:
要件 1: LocalStorage を使用しますが、キー名には item&1494485763; のように有効期限が含まれます
要件 2: 構成アイテムがリクエストされるたびに、リクエストリクエストには最終変更時刻の Cookie 値が含まれます。最終変更時刻が同じ場合は空を返し、それ以外の場合は最新の構成アイテムを返します。 ;
phpcn_u15822017-05-19 10:13:00
localStorage を削除し、ログイン ページのようこそページでリセットするだけでは十分ではありませんか?
次に、要件 2 は有効期限を設定することです。最後のローカルストレージから 10 分が経過した場合。再度データをプルします。
大家讲道理2017-05-19 10:13:00
localStorage または IndexedDB を使用できます。
キャッシュされたデータの処理には、有効期限メカニズムを設計することも、トランザクションごとに UUID を生成し、すべてのトランザクションが完了した後にキャッシュをクリアすることもできます。
世界只因有你2017-05-19 10:13:00
localStorage は、保存する情報が変更された場合に、localStorage 内の対応するストレージ情報を更新するだけで問題を完全に解決できます。もちろん、機密情報がある場合、ブラウザに保存することはできません。