32

私の Web アプリケーションのユーザーは、複数のブラウザー ウィンドウを開いて同じページを指している可能性があります。ページ内の特定のもの (ajax を介してロードされたもの) の状態をポストバック間で保持したいと考えています。Cookie またはサーバーに保存できます。いずれにせよ、各ウィンドウをどのように区別できるかは考えられません。

たとえば、ユーザー Bob が 2 つのブラウザー ウィンドウを開いて ListOfSomething ページを開いているとします。各リストには、保持する必要があるLoadedPageNumber属性があります。そうしないと、ユーザーは更新時に常に 1 ページ目になります。ボブはブラウザ ウィンドウ 1 をロードしてページ 5 をポイントし、次にブラウザ ウィンドウ 2 をロードしてページ 14 をポイントした可能性があります。セッション ID に基づいて属性を保存すると、ボブはウィンドウ 1 を更新するとウィンドウ 1 にページ 14 を取得します。

私の状態変数は実際にはこの単純な例よりもはるかに複雑であり、それらを永続化できないことが大きな問題 (私のアプリの弱点) につながる可能性があることに注意してください。

ある種のブラウザ ウィンドウ ID か何かが必要です。もちろん、クロスブラウザ ソリューションである必要があります (IE6+、Wekbit?+、FF2+)。

何か案は?

関連性に関する注意: これは、古いフォーム ベースのページと新しい AJAX 対応アイテムを混在させる場合にも役立つことに注意してください。フォームをポストバックする必要があり、クライアント側の状態値を失いたくない場合があります。

4

6 に答える 6

1

サーバーがIDをランダムに生成し、それが提供されたときにページ(いくつかのjavascript変数)に保存するのはどうですか?次に、その ID を ajax リクエストに含めるだけです。ブラウザの更新では役に立ちませんが、ユーザーがそのページをそのままにしておく限り (そして ajax に任せるだけで) 正常に動作するはずです。

于 2009-05-14T18:36:14.457 に答える