1

「jQuery モバイル バスケット」でググると、「jQuery モバイル」と「バスケットに追加」ボタンに関する大量の本しか見つかりません。

これが私が行った方法であり、それが良い方法ではないことを示しています(=ユーザーの操作が悪い):

MP = 携帯電話

  1. MP: ローカル バスケットの作成 (JavaScript クラス)
  2. MP: すべての製品を含むページ全体をダウンロードしますが、非表示 (= 異なるページ) です。
  3. MP:商品選択時、ページのみ変更
  4. MP:すべてがサーバー側に保持されるように、製品、make、および AJAX 呼び出しを追加するたびに
  5. MP:製品、make、および AJAX 呼び出しを削除するたびに、すべてがサーバー側に保持されるようにする
  6. サーバー側: 有効期限が切れるか、MP のユーザーが登録するまで、すべてをセッションに保持します。その場合は、すべての情報を含む新しいレコードをデータベースに追加します。

大きな問題は、追加または削除するときです。Ajax 呼び出しを行うだけでは非常に遅く、これが受け入れられない場合があります。多くの製品を追加することが多いため、各呼び出しを待たなければならない場合があります。ユーザーフレンドリーではありません。

私の(将来の)ウェブサイトはこの方法で完璧に機能しますが、モバイル版がそれほど問題になるとは知りませんでした。

これに対する「モバイル版」のソリューションは何でしょうか?

4

2 に答える 2

0

可能な実装basketでは、Javascript のグローバル変数として構造を持ち、それをサーバー側の構造と同期させることができます。

MP 上のページの JS コードは、ローカルbasket構造からのみ追加/削除する必要があります。

次に、一定の時間間隔で Ajax 呼び出しを使用して、ローカルbasketをサーバーに同期するタイマーが存在する可能性があります。basket

この方法では、追加/削除のたびに Ajax 呼び出しを行わず (遅くなります!!!)、サーバーへのデルタをバッチ処理します。

于 2012-07-17T08:12:26.667 に答える
0

バスケットにあるものは何でもグローバル変数に保存できます。通常の jQuery-mobile トランジションを使用する場合 (ロードされるのは のみ)、変数はページ間で削除されないためdata-role="page"、この変数を使用してアイテムを格納できます。「バスケットに入れられた」アイテムのすべてのプロパティを格納するには、JSON オブジェクトを使用するのが最も簡単だと思います。

rel="external"ただし、どこかの遷移によって変数が削除されないようにする必要があります。おそらく、サイトのバックアップは、これらのケースに対する保護を提供するでしょう.

于 2012-07-17T07:54:11.503 に答える