ajaxページエコー対バックグラウンドajax/直接HTML操作?
-
27-10-2019 - |
質問
私はジレンマを持っています、そして私は本当にいくつかのアドバイスを使うことができました。私はPHP/Smarty/HTML/JQueryを使用して注文システムを構築しています。現在、売り手が注文を確認するサイトで作業しています。
私は3つのdivが必要です。
- 待機注文div-処理されていない注文のテーブルが含まれています
- Last Orders Div -Last Processed Orders(10-20行)のテーブルが含まれています
- 詳細div-注文に関する情報と、確認/衰退するボタンが含まれています
これは典型的なマスターディテールの状況であり、マスターのみが2つの部分(1,2)に分割され、詳細はDiv 3にあります。待機注文Divは、Comet(長期監督)テクニックを介して満たされています。
私のジレンマは、divをJavaScript/ajaxと接続する方法です。 DB状態に対応するエコーページを作成し、完全にDivにロードする必要があります。または、テーブルの行のみを操作し、バックグラウンドDB呼び出しにのみAjaxを使用する必要がありますか?
より明確にするために:
オプション1(AJAX完全ページ):
- ユーザーが待機注文を選択すると、新しいページ(エコーテーブル)がajaxでフェッチされ、詳細divにロードされます
- ユーザーがDiv 3の順序を確認/低下させると、Div 1と2はajax(dbの状態に対応するテーブルを持つエコーページ)で更新されます)
オプション2(HTML操作/背景ajax):
- ユーザーが待機注文を選択すると、Div 3の要素が新しい値で満たされます。
- ユーザーがdiv3の順序で確認/低下すると、div 1のテーブルからtrが削除され(dbからの背景ajaxからdel)、同じtrがdiv 2に追加されます(dbに挿入する背景ajax)
それで、どちらの方法ですか?
解決
両方の方法はAcceptAbaleですが、NR 1はリロードDiv 1と2のため、ユーザーフレンドリーではありません。 Div 3に何かをロードすると、IDがあるため、TRをコピー /追加するのに問題があるはずです(色を追加して、ユーザーが何が起こったのかを知ることができます)。
2を選択した場合、TR要素に新しいアクションをアンバインド /バインドすることを忘れないでください。TRを別の場所に移動すると、以前にバインドしたアクションがトリガーされないからです。
私はおそらく自分自身で2つに行きます;)
詩ajaxローダーでオーバーレイを追加します(http://ajaxload.info/)、ユーザーの中断から安全な側にいること、Div 3にデータをロードしている間、ユーザーもより幸せになります。