0

localStorage を使用してクライアント側の会話を保存し、データベースのサーバー側のスペースを節約しています。それを行うために、次のようなオブジェクトを使用します。

users = {
  478vh9k52k: {
    name: 'john',
    messages: []
  },
  42r66s58rs: {
    name: 'jack',
    messages: []
  }
};

次にusers[id].messages.push(msgObj)、正しいユーザー ID 内に新しいメッセージをプッシュするために使用します。最後にJSON.stringify、結果の文字列を使用して保存します。

これの問題は、文字列がゆっくりと成長し、制限を埋めることです。メッセージ配列の長さは切り捨てているのでそれほど問題ではありませんが、古いユーザーの存在はもはや必要ありません。

質問は簡単です:「users」オブジェクトに含まれる古いユーザーを削除するにはどうすればよいですか? オブジェクト内のキーとしてタイムスタンプを追加し、ランダムなユーザーにアクセスして、保存するたびにチェックすることを考えていました。

または、これを行うより良い方法はありますか?

4

1 に答える 1

0

なぜランダムにアクセスするのですか?代わりに、数日でストレージを分割できます。

localStorage["chatLogs"] = {
  "13........0" : {
    bob: {},
    alice: {},
    christoffelson: {}
  }
  "13....86400" : {
    bob: {},
    alice: {},
    christoffelson: {}
  }
}

次に、キーでオブジェクトを実行します。1 日以上経過している場合は削除します。または、多くのクエリ/フィルタリングを行う場合は、localStorage の代わりに indexdb を使用することを検討できます。

于 2013-03-16T12:52:23.653 に答える