每個頁面/域是否隔離了HTML5 localStorage對象?我想知道,因爲我將如何命名localStorage密鑰。我需要一個單獨的前綴嗎?或者我可以將它們命名爲我想要的嗎?在HTML5中,每個頁面/域是否隔離了localStorage對象?
回答
它是每個域名(與same origin policy相同的隔離規則),爲了使它每頁都必須使用基於location
的密鑰或其他方法。
你不要需要一個前綴,如果你需要的話可以使用一個前綴。另外,是的,你可以將它們命名爲任何你想要的。
正是我所需要的。 – 2010-11-18 01:11:34
根據協議:// host:port'組合,它是唯一的。 – Thasmo 2016-02-03 23:48:20
我在這裏評論以確認知道該端口在範圍界定中是有用的。考慮一下:dev服務器,'localhost'。 – 2016-09-04 02:38:46
是的,每個域/子域有不同的localStorage,你可以調用任何你想要的密鑰(不需要前綴)。
要一鍵搞定,你可以使用的方法鍵(指數)如
localStorage.key(0);
有所謂globalStorage的在那裏你可以有多個localStorages前一個對象,但它已經從規格
棄用我總是使用前綴,以避免與用戶腳本的潛在衝突 - 也可能使用localStorage。
IMO這是應避免碰撞的用戶腳本,而不是頁面。在我的用戶腳本中,我使用了一個以腳本命名的前綴。 – 2012-02-18 04:43:38
尼克建議,它可以在該域的任何地方使用,作爲另一種選擇,sessionStorage的作用略有不同,因爲它與瀏覽器窗口本身不同。也就是說,同一個域上的其他選項卡或窗口不能訪問存儲對象的同一副本。
的商店是每原點,其中原點相同的Same Origin Policy(一個模式[http
與https
,等],端口和主機的組合)。 From the spec:
每個頂級瀏覽上下文都有一組唯一的會話存儲區域,每個來源一個。
因此,http://a.example.com
儲存和爲http://b.example.com
存儲是分開的(和他們都是從http://stackoverflow.com
分開)的那些都不同的主機。同樣,http://example.com:80
和http://example.com:8080
和https://example.com
都是不同的來源。
Web存儲中沒有內置機制允許一個來源訪問另一個來源的存儲。
注意它的起源,而不是URL,那麼http://example.com/page1
和http://example.com/page2
都能訪問的存儲的http://example.com
。
正如其他人指出的,localStorage每個協議都是唯一的,主機端口爲&。如果你想要一個方便的方式來控制你的存儲與前綴的鍵,我建議localDataStorage。
它不僅幫助在同一個域中通過爲密鑰加前綴來實施分段共享存儲,還透明地存儲javascript數據類型(Array,Boolean,Date,Float,Integer,String和Object),自動提供輕量級數據混淆壓縮字符串,便於按鍵(名稱)查詢以及按(鍵)值查詢。
[免責聲明]我的實用程序的作者[/免責聲明】
例子:
// instantiate our first storage object
// internally, all keys will use the specified prefix, i.e. passphrase.life
var localData = localDataStorage('passphrase.life');
localData.set('key1', 'Belgian')
localData.set('key2', 1200.0047)
localData.set('key3', true)
localData.set('key4', { 'RSK' : [1,'3',5,'7',9] })
localData.set('key5', null)
localData.get('key1') --> 'Belgian'
localData.get('key2') --> 1200.0047
localData.get('key3') --> true
localData.get('key4') --> Object {RSK: Array(5)}
localData.get('key5') --> null
// instantiate our second storage object
// internally, all keys will use the specified prefix, i.e. prismcipher.com
var localData2 = localDataStorage('prismcipher.com');
localData2.set('key1', 123456789) // integer
localData2.get('key1') --> 123456789
正如你所看到的,原始的價值得到尊重,你可以創建多個實例來控制你的存儲。
- 1. 每頁LocalStorage而不是(子)域?
- 2. HTML5 localStorage離線網站
- 3. 隔離作用域'='傳遞字符串而不是對象
- 4. 在一個頁面上監聽HTML5 localStorage變量
- 5. 每頁localStorage?
- 6. OOP Javascript - 在類中隔離對象
- 7. 是否共享HTML5 localstorage配額?
- 8. HTML5 localStorage是否安全長期?
- 9. 檢查對象是否在localStorage中的AngularJS數組中
- 10. 在每個Django頁面中傳遞一個對象
- 11. HTML5 localStorage是否在瀏覽器實例中持續存在?
- 12. HTML5:在localStorage的
- 13. 區域設置更改每隔一頁的頁面加載
- 14. 檢測一個jQuery對象是否在頁面上
- 15. 將json對象存儲在HTML5 sessionStorage或localstorage中安全嗎?
- 16. 如何將數組存儲在html5的localStorage對象中?
- 17. HTML5歷史API和離開頁面(到相同的域)
- 18. 在刷新頁面的localstorage對象上保存CSS類
- 19. 我怎麼知道用戶是否已經離開了頁面?
- 20. 將HTML頁面分隔爲「對象」
- 21. 如何檢查HTML5中是否有可離線使用的頁面?
- 22. HTML5 localStorage
- 23. WATIN中是否有頁面檢查器在每個頁面加載時執行?
- 24. 將對象存儲在localStorage中,該對象不能是json stringify'd?
- 25. 我是否正在使用Selenium中的頁面對象模型?
- 26. 查找當前頁面是否在Zend導航對象中
- 27. 檢查每個頁面中是否存在元素
- 28. 我是否需要在每個頁面中使用會話?
- 29. 保存值到HTML5的localStorage - >在頁面加載填充
- 30. 子域的HTML5 localStorage大小限制
該域是否包含端口號? – 2015-06-04 13:01:19