3

現在、ユーザーがページにアクセスしてカスタム ループ マップを作成するプロジェクトに取り組んでいます。ユーザーがマップのタイプを選択すると、新しいブラウザー タブ (これは発生するように指示されています。この問題については何も言えません) が開き、その特定のマップ ルーパーが表示されます。速度、開始時間と停止時間のコントロール、および 15 分間の自動更新を有効にするチェックボックスがあります。現在、JQuery を使用してドロップダウンとチェックボックスをキャプチャし、値を Cookie に保存してから、ページが更新されたときにそれらをロードします。

これは明らかに正常に機能しますが、気象学では、2 つのマップを開いてループする必要がある場合があります。時にはさらに。Cookie を使用すると、2 番目のマップは最初の値を使用します。2 番目のマップのオプションを変更すると、最初のマップがそれらのオプションで更新されます。これは理想的ではありません。

セッションと Cookie は同じように見えます。タブを開いている場合、これらの値は各マップ ルーパーを通じて保持されます。私の他のオプションは、URL でハッシュタグを使用し、そこで選択された値を保持し、更新時にそれを解析することです。何か不足していますか?乱雑に見えるのでハッシュタグは使用したくありませんが、Cookie 内で異なる値を使用して複数のタブを使用する方法がわかりません。ユーザーが 10 個のタブを開いている場合はどうなりますか? 私の質問は、このアプリケーションの場合、実装するのに最適なソリューションはどれですか?

ページ内で javascript/JQuery と php を使用しています。当社の製品は、Chrome、Firefox、および IE と互換性がある必要があります。

4

3 に答える 3

0

個々のマップに一致する一意の ID を Cookie データの先頭に追加します。したがって、map2 の option1 は map2option1 になります。

于 2012-10-31T14:54:52.640 に答える
0

タブとは、webbrowser タブまたは同じページの div を意味しますか? タブが 1 つのページの要素である場合は、それらを一意のデータで装飾するだけです

<div class="mytab" data-session="1">
//tab data
</div>
<div class="mytab" data-session="2">
//tab data
</div>

データをリフレッシュすると:

$('.mytab[data-session]').each(function(){
   $.post('/refres', { sessionId : $(this).data('session')}, function(html){
      $(this).html(html);
   })
});
于 2012-10-31T15:25:36.877 に答える
0

すべてのタブで新しいタブを使用する場合は、非表示のセッション キーを作成します

<input type="hidden" value="@Guid.NewGuid().ToString()" id="sessionKey" />

リフレッシュして保存すると、コントローラーに渡されます。ユーザーには非表示です

于 2012-10-31T15:40:27.957 に答える