2012-10-31 59 views
3

我目前正在開發一個項目,其中用戶登錄頁面以構建自定義循環地圖。當用戶選擇地圖類型時,新的瀏覽器選項卡(這是指向發生,我沒有發言權)隨着該特定地圖活套打開。有控制速度,開始和停止時間,以及啓用15分鐘自動刷新的複選框。目前,我使用JQuery捕獲下拉列表和複選框,將值保存到cookie中,然後在頁面刷新時加載它們。多個頁面需要使用不同選項自動刷新

這顯然工作得很好,除了在氣象中,我可能需要打開和循環兩張地圖。有時甚至更多。如果我使用cookie,那麼第二張地圖將使用這些值作爲第一張。如果我更改第二張地圖的選項,第一張將使用這些選項進行刷新。這並不理想。

我看到會話和cookie相同。如果我打開製表符,這些值將通過每個地圖活套持續存在。我的其他選擇也許是在URL上使用hashtag,並保留在那裏選擇的值,並在刷新時解析該值。我錯過了什麼嗎?我寧願不使用井號標籤,因爲它看起來很亂,但我無法弄清楚如何在cookie中使用不同值的多個標籤頁。如果用戶打開了10個選項卡會怎麼樣?我的問題是,對於這個應用程序來說,哪個是最好的解決方案?

我們在頁面內使用javascript/jQuery和php。我們的產品必須與Chrome,Firefox和IE兼容。

+1

你可以使用會話變量服務器端,爲每個「頁面/標籤」分配一個會話ID,因爲它被加載並將該唯一ID與cookie創建關聯? – SpYk3HH

回答

0

爲與單個地圖匹配的Cookie數據添加一個唯一標識。因此,map2上的option1變成map2option1

0

按標籤您的意思是web瀏覽器選項卡或只是在同一頁上的div? 如果你的標籤是一個頁面上的元素只是裝點他們的uniq數據

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

數據:

$('.mytab[data-session]').each(function(){ 
    $.post('/refres', { sessionId : $(this).data('session')}, function(html){ 
     $(this).html(html); 
    }) 
}); 
+0

我對此感到抱歉。它應該是瀏覽器選項卡。根據用戶的不同,當他們點擊着陸頁上的構建產品按鈕時,他們會獲得瀏覽器選項卡或新窗口。我將編輯我的問題以反映這一點。 – RBeye

0

如果您使用的每個選項卡上的新標籤創建隱藏會話密鑰

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

刷新並保存傳遞給控制器​​。它對用戶是隱藏的