1

localstorage を使用して、Web ページで gmail スタイルの自動保存を実行しています。

だから私は基本的に30秒ごとにローカルに保存します.

問題は回復です。ユーザーがクラッシュしたか、誤って終了したかどうかを検出できません。

ユーザーがクラッシュしてフォームを再度ロードしたとしましょう。以前の自動保存を保存して上書きすることはできません。以前の保存を復元する必要があります。

しかし、ユーザーがクラッシュしなかったとしましょう。彼はすべてを正しく行いましたが、別のブラウザを使用して同じファイルを編集したため、以前のブラウザのローカル ストレージに新しいデータはありませんでした。

次に、以前のブラウザでファイルをロードします。その場合、ローカルストレージを復元しないでください。

タイムスタンプを比較する方法がないと仮定すると、どうすればこの問題を解決できますか?

ありがとう。

4

1 に答える 1

1

Gmail のような AJAX スタイルのページを使用しているとします。

ページ レベルで boolean フラグを保持しますが、localstorage の外側と特定の更新領域の外側に保持します。

var bIsInited = false;

ユーザーが更新をクリックしたり、ページを初めてロードしたりした場合 (つまり、ブラウザの再起動後) にかかわらず、ページ全体が再ロードされるたびに、フラグは false になります。

UI の操作時にこのフラグが false の場合は、ローカル ストレージから UI の状態を復元し、フラグを true に設定します。

新しい変更を localstorage に保持し続けます (以前のように、何らかの方法でフラグが false に設定されている場合を除きます。この場合、UI を localstorage に書き戻す前に localstorage を UI に読み込むのと同じ信号です)。

このフローには多くのバリエーションがありますが、それが要点です。

于 2010-06-09T23:27:16.423 に答える