3

私にはジレンマがあり、私は本当にいくつかのアドバイスを使うことができました。PHP / Smarty / HTML/jQueryを使用して注文システムを構築しています。現在、販売者が注文を確認するサイトで作業しています。

私は3つのdivを持っている必要があります。

  1. 待機中の注文div-未処理の注文を含むテーブルが含まれています
  2. 最終注文div-最後に処理された注文(10〜20行)のテーブルが含まれます
  3. 詳細div-注文に関する情報と、確認/拒否するためのボタンが含まれています

これは典型的なマスター/詳細の状況であり、マスターのみが2つの部分(1,2)に分割され、詳細はdiv 3にあります。当然、すべてがjavascript / Ajaxに接続されているため、ユーザーは「リアルタイム」の感覚を得ることができます。待機中の注文divは、コメット(ロングポーリング)手法を介して満たされます。

私のジレンマは、divをjavascript/ajaxに接続する方法です。db状態に対応するエコーページを作成し、完全にdivにロードする必要があります。または、テーブルの行だけを操作して、バックグラウンドのdb呼び出しにのみajaxを使用する必要がありますか?

自分自身をより明確にするために:

オプション1(Ajaxの完全なページ):

  • ユーザーが順番待ちを選択すると、新しいページ(エコーされたテーブル)がajaxでフェッチされ、detailsdivにロードされます。
  • ユーザーがdiv3の順序を確認/拒否すると、div 1と2がajaxで更新されます(dbの状態に対応するテーブルを持つエコーページ)

オプション2(html操作/バックグラウンドAjax):

  • ユーザーが待機順序を選択すると、div3の要素が新しい値で埋められます。
  • ユーザーがdiv3の順序で確認/拒否すると、div 1のテーブルからtrが削除され(dbからdelへのバックグラウンドajax)、div 2に同じtrが追加されます(dbに挿入するバックグラウンドajax)

では、どちらに行くのですか?

4

1 に答える 1

1

どちらの方法も受け入れられますが、div 1&2をリロードするため、nr1はユーザーフレンドリーではありません。div 3に何かをロードすると、そのIDがあるので、trをコピー/追加する(そして色を追加するので、ユーザーは何が起こったのかを知ることができます)のは問題になるはずです。

2を選択した場合は、新しいアクションをtr要素にバインド解除/バインドすることを忘れないでください。trを別の場所に移動しても、以前にバインドしたアクションはトリガーされないためです。

私はおそらく2人で行くでしょう;)

PS。データをdiv3にロードしている間、ユーザーの中断から安全を確保するために、ajaxローダー(http://ajaxload.info/ )でオーバーレイを追加します。ユーザーは、何かが起こっていることを知っているので、ユーザーも幸せになります。の上 ;)

于 2011-01-31T17:37:03.670 に答える