是否有可能檢測到頁面是否在2個不同的瀏覽器中打開?檢測當前標籤
我已經構建了一個小應用程序,它將一些數據存儲在$ _SESSION中,問題是當打開多個選項卡時,會話變量被覆蓋(搜索表單中的搜索過濾器),因此選項卡可能會顯示對於明顯不同的搜索,結果相同。
這個應用程序使用的主要瀏覽器是IE瀏覽器,所以它需要一段時間來打這個問題,應用程序得到..更大,更難以修改。
,直到我解決這個搜索到所有的引用,我願做一個「快速&髒的修復」,並拒絕打開兩個卡口與同一個頁面,或至少顯示警告..
編輯: @arjun:是的,我知道,但是當用戶返回到搜索頁面時,我必須恢復搜索過濾器:)所以$ SESSION是這樣的方式。另外,這些過濾器通過AJAX發送,當你有很多過濾器(GET的大小有限,所以我使用POST)時,它很難調試。
@tomhaigh:thx..but這就是我試圖做現在,但這將需要一段時間,因爲這個標籤「東西」影響整個應用程序,我必須改變所有模塊中的過濾器...我一直在尋找快速&髒東西。提示:我不想使用time()和rand(),因爲這些函數可以(並最終會)生成重複的數字。在新的「重寫」中,我使用PHP中的microtime和JS中的Date.getTime(),並將它們連接起來以生成一個真正唯一的ID。此外,我寫了一個函數來解析SESSION不時並清理超過2小時的存儲過濾器,所以它不會變得太大。
@Gortok:我知道..但是是設計與IE6在腦海裏和大多數用戶(如90%)仍然使用IE6登錄到這個應用程序...所以我從來沒有看到需要考慮多個打開標籤。
他已經表示他想要一個快速和骯髒的臨時解決方案。無論如何,我無法理解單身模式在這種情況下的幫助。 Singleton $ _Session?在PHP中沒有應用程序,所以不能有單身人士。響應結束時,每個對象都會死亡 – Diadistis 2008-12-29 01:52:54