私は現在、サーバーからデバイスへのデータのプルをサポートし、そのデータをデバイスの SQLite DB に格納し、ユーザーがデータを操作できるようにしてから、SQLite DB からデータをプッシュするプロトタイプ モバイル アプリに取り組んでいます。サーバーまで。これまでのところ、最後の部分まですべてがうまく機能しています。SQLite テーブルから情報を取得して JSON オブジェクトに戻し、サーバーにプッシュするのに問題があります。
この時点での私の基本的な問題は、JavaScript のすべての db トランザクションが私の理解から非同期であることを考慮して、SQLite のデータから JSON オブジェクトを構築する方法を理解することです。
いくつかのサンプルコードを含む jsFiddle があります: http://jsfiddle.net/uu29g/
私の希望は、次のようなものをサーバーにプッシュすることです。
[{"order_num": "2001", "custnum": "ABC123", "custname": "Demo Customer", "status": "S", "id": 1, "lineitems": [{"id": 1, "line_num": "1", "part_num": "WSC599", "part_desc": 'Widget A', "qty": "2.0", "price": "15.00"}, {"id": 2, "line_num": "2", "part_num": "FFC898B", "part_desc": 'Dongle B', "qty": "1.0", "price": "32.98"},
{"id": 3, "line_num": "3", "part_num": "RQFG", "part_desc": 'Dooflatchie', "qty": "5.0", "price": "200"}]},{"order_num": "2002", "custnum": "ZXY987", "custname": "Another Customer", "status": "S", "id": 2, "lineitems": [{"id": 1, "line_num": "1", "part_num": "GHJH11", "part_desc": 'Lightsaber - Green', "qty": "1.0", "price": "1500.00"},
{"id": 2, "line_num": "2", "part_num": "C3P0", "part_desc": 'Protocol Droid', "qty": "1.0", "price": "9811.04"}]}]
jsFiddle の例のデータベースを考えると、SQLite データから上記のようなオブジェクトを生成する最良の方法は何でしょうか? 編集: 具体的には、3 つの非同期クエリからそのオブジェクトを構築するにはどうすればよいですか? 私の現在の考えは、order_header テーブル (私の jsFiddle の例) から注文番号のリストを取得し、それらの注文番号をループして、各注文のテーブルから order_header 情報と order_detail/line item 情報を引き出し、それをオブジェクトを作成し、各注文オブジェクトを最終的な配列/オブジェクトにプッシュします。私が苦労しているのは、SQL クエリが非同期のときに SQLite からヘッダーと詳細データを取得する方法です。(そして、私はこれについて完全に間違っているかもしれません)。
*FYI: jQuery の Deferred オブジェクトについてまだ学習中です。私が取り組んでいるアプリは、jQuery Mobile を使用して構築されており、iOS/Android で動作することを意図しており、phoneGap を介してネイティブ アプリに変換されます。