2015-05-25 93 views
3

場景:在後端傳遞瀏覽器選項卡信息?

我們有一個分析,根據不同的輸入給出不同的結果。因此,如果用戶在兩個不同的瀏覽器標籤中打開相同的分析,那麼常用的會話變量將被覆蓋,並且兩個標籤中的輸出將相同,不過我們希望基於標籤中不同用戶輸入的不同輸出。

所以我們計劃在後端發送一個tab-id,這樣我們就可以保存每個tab-id的會話變量。

是否有一些自動的方式,標籤信息被髮送到服務器可能在請求頭或類似的東西? 或者我們將不得不自己生成一個tab-id,並將其發送給每個請求?

+2

請添加您的編程語言的標籤,使其更有意義;)。 –

回答

1

你必須生成你的標籤,標識和其傳回與每個請求,但下面可能使其更容易一點:

可以使用的sessionStorage從Web存儲API來唯一的每個存儲值標籤。瀏覽器中的每個選項卡都會啓動一個新的會話,因此它們總是不同的

https://developer.mozilla.org/en/docs/Web/API/Window/sessionStorage

應該與最常見的瀏覽器(IE8連+)工作:http://caniuse.com/#search=web%20storage

希望幫助!

+0

據我所知,'sessionStorage'是一個客戶端會話來保存客戶端的信息。在我的情況下,我希望服務器端會話變量標識不同。任何關於這個的建議? –

+0

這是正確的,sessionStorage是客戶端。這對你有用的東西在於它對每個選項卡都是唯一的。 因此,您可以在頁面上生成一些腳本,用於生成唯一的標籤ID並將其保存在sessionStorage中,然後將其傳遞迴服務器並提供每個請求。 然後,您可以使用服務器上的tab-id使會話變量唯一,例如將它們存儲在由tab-id索引的數組中,或者甚至只是將它附加到var名稱。 – beercohol

+0

在這裏查看一些關於如何在Javascript中生成UUID的信息:http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript 請看以下從@broofa接受的答案 – beercohol

相關問題