2

私のアプリケーションは、ほとんどのアクションが発生する「メイン」ページを備えています。フィルタリング用のタグと、(ページ分割された) テーブル内の結果のリストに加えて、「ショッピング カート」内の一部またはすべての結果を選択する可能性があります。

このページは、選択されたタグ、選択されたアイテム、結果テーブルがどのようにソートされ、どのページにあるかなど、多くのことを追跡する必要があります。すべてを維持する必要があるため、新しいタグを選択すると、ページは部分的にリロードする必要がありますが、すべて (並べ替え、選択内容) は記憶されています。

現在、私はすべてをパラメーターで処理しており、ページで実行されるアクションごとに、すべてのリンク (タグ/アイテムの選択、ページの変更、テーブルの並べ替え) が更新され、以前のパラメーターと関連する新しい追加が含まれます。これは明らかに機能しますが、必要以上に多くのページをリロードする必要があるため、効率が悪いように感じます。この状況は通常どのように処理されますか? グーグルではそれほど多くの情報がまったく見つかりませんが、特に珍しいケースのようには感じません。

tl;dr: (同じページへの) すべてのリンクに、以前に選択したものすべてと新しいアクションが常に含まれるようにする方法。多くのリンクがあります (選択/選択解除するタグごとに 1 つ、選択/選択解除する結果アイテムごとに 1 つ、並べ替えオプションごとに 1 つ、ページごとに 1 つ)。

4

2 に答える 2

4

これを行うには、次の 5 つの方法があります。

方法 1: パラメータによる

あなたはこれについて言及しました。めんどくさいので考えたことないです。とにかく、それはまだ非常に単純なケースの解決策です。

方法 2: クッキーによる

設定を Cookie に保存し、コントローラーで Cookie を読み取り、レイアウト設定を配置します。

方法 3: LocalStorage による

cookie に似ていますが、より多くのスペースを許可します。

方法 4: セッションごと

セッションを保存するために ActiveRecord を使用している場合、これは純粋なページの読み込みに最適なソリューションとなる可能性があります。ユーザー設定をセッションに保存し、次のレイアウトにロードします。

方法 5: Ajax を使用する

これは、IMO の最適なソリューションです。ページ全体をロードする代わりに、Ajax を使用して必要な変更を更新/取得します。上記の方法と組み合わせて使用​​すると、ユーザーは最後の設定を続行することもできます。これは最も強力で、Web サイトというよりは Web アプリのように見えるケースに適用できるはずです。

于 2013-05-20T09:09:26.770 に答える