我負責提出一種方法,通過使用後退按鈕(意味着他們離開我們的網站並返回)來確定一個人是否已經到達我們的網站,如果是,則將其註銷。阻止人們返回網站?
我想出了一些選擇,但我想知道我可能會失去什麼其他選項。僅供參考,我們確實有一個會話狀態,所以在服務器端我們需要長時間缺席,但他們希望在客戶端進行額外的檢查。
選項1:通過onunload設置烹飪,過期時間爲x秒。在我們網站的每一頁上,我檢查了上述cookie。如果存在,我認爲他們來自我們網站上的另一個頁面,什麼都不做。如果它不在那裏,我認爲它們已經離開我們的網站超過了x秒,並且重定向了。 Con:運行OS5的Blackberry設備不支持onunload。選項2:與#1相同,但不是設置cookie onunload,而是在每次點擊每個鏈接時都將其設置爲轉到我們網站上的其他頁面。 con:messy
選項3:
檢查我們網站每頁上每個負載的瀏覽器歷史記錄。如果以前的網址不是我們的網址,我們會將其註銷。缺點:瀏覽器支持?
由於安全性,它看起來像上一個/下一個歷史對象現在在現代瀏覽器中被阻止。選項4:通過JS,每隔x秒檢查一次cookie。如果存在,請將其重置爲在x秒內過期。如果不在那裏,假設他們已經從其他地方回來了。答:不知道是否在頁面可能位於後臺(應用程序在iPhone上切換或在桌面瀏覽器中使用不同的選項卡)時設置JS cookie。
我應該考慮的其他選項?有沒有一種「適當」的方式來處理這個問題?這只是抓住了試圖阻止瀏覽器正常行爲的吸管?
我對這方面的其他一些探索感興趣。我已經看到一些有趣的Javascript與cookie和其他與AJAX會話檢查。 – tamarintech 2011-04-05 18:55:30
選項5:放棄。儘管如此,選項1和選項2有明顯的缺陷(互聯網的間歇性特徵之一),但考慮到事實上的標準是現在選項卡式瀏覽,選項3會被排除在外,選項4也是如此只是簡單的愚蠢。除此之外,還有什麼其他的東西可以抓住吸管,擊敗一匹死馬 - 無論委婉說法如何,它們在這種棘手的情況下都會帶來麻煩。 – 2011-04-05 18:58:30
我應該給更多的上下文。這主要是針對移動設備的。因此,由於網絡滯後,我們不會採用AJAX路線。不過,標籤式瀏覽是一個問題,就像移動Safari一樣。 – 2011-04-05 19:01:13