2

非常に大きなフォームを使用してデータを収集する PHP/MySQL フロントエンドがあります。バックグラウンドで JSON 投稿を使用して、定期的にデータベースにデータを保存しています。時折、ユーザーは接続を失いますが、作業は続けます。そのデータは失われ、フラストレーションなどを引き起こします...

接続が失われたときにデータをローカル ファイルに保存するようにクライアントをシームレスに移行し、接続が復元されたらデータベースに同期することは可能ですか? これが単純な要求ではないことは承知しています。私は、それが行われたか、または理論的に行うことができるかどうかを確認したいだけです。

前もって感謝します。

4

1 に答える 1

1

LocalStorage を使用してみてください。仕組みの基本情報はこちら

簡単な使用方法は次のとおりです。 1. ユーザーがフォームを開いたときに、ローカル ストレージにデータがあるかどうかを確認します (このデータがサーバーから取得したデータよりも新しいかどうか)。存在する場合は、それを読み込みます。2. ときどき、js は更新を含む ajax 呼び出しを送信しようとします。失敗すると (接続タイムアウトなど)、js はデータをローカルに (タイムスタンプ付きで) 保存し、後で保存しようとします。

ただし、変更のたびに(またはユーザーが別のフィールドに移動したときに)フォームデータをローカルストレージに保存し、このデータをサーバーに送信しようとする2番目の関数を時々実行することで、少し改善できます。

このようなソリューションの欠点は、古いブラウザーでは機能しないことですが、本当に必要な場合は、LocalStorage を... cookie に置き換えることでこれを克服できます。ひどく醜いですが、必要に応じて機能します。

于 2013-09-25T18:40:23.043 に答える