我有兩個網站http://www.example.com和https://www.example.com。我正在使用HTML5會話存儲來存儲用戶首選項。 用戶到達http://www.example.com,我通過ajax加載一些默認設置。 他們瀏覽到一個頁面需要登錄,併發送到https://www.example.com/login.html 他們完成登錄後,他們被髮回http://www.example.com因爲他們現在登錄,我應該從服務器獲取新的設置。麻煩的是,http和https是不同的起源,不能共享會話存儲。清除html5 sessionStorage跨http/https
事情我已經試過了不起作用: 在只運行sessionStorage.removeItem(「密鑰」)來清除我的數據的iframe加載一個頁面http://www.example.com/clearSession.html,但似乎這有它自己的瀏覽上下文,所以它不起作用。
事情我已經嘗試這項工作,但我不想使用: 使用cookie。這很好,因爲http和https可以共享cookie,但這意味着我的所有用戶設置都會在每次請求資源時發送到服務器。這通常是大約4k,但可能高達1MB的數據。否,我無法將資源託管在其他域中。
不要緩存設置,只是每次發出請求以獲取設置。我在舊版瀏覽器上這樣做,因爲它們不支持會話存儲,但它會減慢頁面加載速度並給我的數據庫帶來額外負擔。
爲什麼在登錄前需要加載默認設置?爲什麼不假設是否沒有默認設置適用的設置? – robertc 2012-03-15 01:27:35
這主要是關於確定我是否登錄並能夠在登出時清除設置。 – Jeff 2012-03-15 17:09:31