1

私はWebアプリケーション(ボトル+ビーカー+ jQuery)に取り組んでおり、さまざまなフォームの送信やページの更新に渡って存続する、ある程度変更可能なアイテムのリストをユーザーに提供してもらいたいと考えています。リスト内のアイテムをクリックすると、そのリストアイテムに関する情報がデータベースに照会され、ユーザーはこの情報を更新できます。さまざまなリストアイテムのクエリ/更新の間、リストを保持したいと思います。また、ユーザーの便宜のために、リストを使用すると、アイテムが処理または表示されるときに、アイテムを「チェックオフ」(またはチェック解除)することができます。

これを実現するために、いくつかの異なる方法を検討しました(たとえば、ページの各フォームの非表示要素を更新してから、セッション管理を使用して、ラウンドトリップごとにサーバー上の作業リストを更新します。Ajaxを使用して、毎回セッション変数を更新します。リストの項目はチェックされるか、「アクティブな」リスト要素になります)が、どれもひどく満足できるものでもエレガントなものでもありません。

私の質問は、この種のものを処理する標準的な方法はありますか?確かに、これは同様のWebアプリケーションにとってかなり一般的な要件です。

4

1 に答える 1

1

stackoverflow.com の詳細な調査 (これらのリンクは役に立ちました:

ブラウザタブでセッションを区別する方法は?

複数のタブの webapp セッション データ/コントローラー フローの管理 )

同僚との有益な議論に加えて、HTML5 ローカル ストレージを使用する、ほとんどの最新のブラウザーで動作するはずの回答が得られました。元の質問で言及されているリストは、その特定のユーザー セッションにのみ関連するものであるため、この情報をサーバーに渡す理由さえありません。jStorageのようなものを使用して、ページが更新されるたびにリストをローカルに保存し、戻ったときに定義済みのキーを使用して再度取得します。唯一の秘訣は、ブラウザーのタブやウィンドウごとに異なる作業リストを維持する方法です。セッションまたは Cookie を使用してこれを行うことはできません (これらはすべてのタブ/ウィンドウで共有されます)。ただし、javascript を使用して設定できます (または、既に設定されている場合は使用します)。window.name. これにより、window.name をローカル リスト/データを格納するキーとして使用できるため、サーバーへのラウンドトリップごとにタブまたはウィンドウ ID を GET 変数として渡す手間が省けます。

于 2012-08-17T15:12:01.787 に答える