2013-07-12 9 views
5

私はソーシャルウェブアプリのアイディアを持っています。アイデアの一部は、ローカルデータベースからサーバーデータベースにデータを引き出すことです。このソーシャルアプリの次のステータスに入れたいと思っていますが、信号とワイヤレスはどこにもありません。あなたは、アプリケーション上のステータスを書き留め、彼らは彼らが電話をオンラインで接続することができるどこかに戻るときに使用するためにlocalstorageに保存します。HTML5のローカルストレージからデータを取得してサーバーデータベースに保存することはできますか?

オンラインにアクセスできる場所に移動すると、アプリケーションはローカルストレージに変更があることを検出し、そこから取得してサーバーデータベースに保存します。

これはすべて可能ですか、もしそうなら、それをどうやって実装するのですか? それがすべてではない場合、これは将来、いつかなる可能性がありますか?

私はそれがかなり大きな議論になるかもしれないと思うので、私はあなたのコメントと答えからこの1つを聞くことを楽しみにしています。

+0

はい、可能です。これは、ローカルストアを使用するウェブアプリケーションの数(例:オフラインGmail)です。 – eggyal

答えて

3

はい、それは可能でしょうか?ローカルストレージからデータを取得すると、そのデータは他のJavascript変数と同じように動作しますが、インターネット接続の欠如以外のサーバーへの送信を制限する制限はありません。

どうすれば実装するのですか?

まず、接続状況を検​​出する必要があります。this questionを参照してください。したがって、ユーザーがステータスを更新しようとすると、接続がオンラインであるかどうかを確認し、接続されていない場合はローカルストレージに保存します。

リンクされた質問のメソッドを使用して、接続がいつ復旧したかを検出し、その時点でローカルストレージからデータを取り出し、経由でサーバーに送信し、ローカルストレージをクリアして、 。

+0

この回答をいただきありがとうございます、私はそれを見つけて何も見つけませんでしたので、これは大いに役立ちます。ありがとうございました。:) – CheckeredMichael

3

Javascriptでnavigator.onLineを定期的にチェックして、デバイスのオンラインステータスを取得することができます。しばらく

navigator.onLine == false 

が安全にオフラインのデバイス、

navigator.onLine == true 

は、それがいくつかに接続されているだけのことを、必ずしもそれがインターネットへのアクセスを持っているという意味ではありませんし、要求を実行できることを示していますことに注意してくださいネットワークの一種。

あなたは、デバイスを使用すると、PHPスクリプトにあなたのlocalStorage

(localStorage.getItem('dataToPull')) 

からデータをPOSTする(私はjQueryの$アヤックス機能を使用することをお勧めします)あなたはAjaxのリクエストを送信したいオフラインされていないことを前提としていたら、それをあなたのMySQLデータベースに挿入します。

このajaxリクエストが失敗し、PHP/MySQLエラーが発生していないと確信できる場合は、デバイスがネットワークに接続されていてもnavigator.onLineがtrueであるにもかかわらず、インターネットに接続できないと考えても安全です。その後、いくつかのエラー処理を行うことができます。デバイスを5分間で再度ポーリングします。

+0

ありがとう、それは私を助ける。 – CheckeredMichael

関連する問題