簡體   English   中英

html5會話存儲有哪些替代方法?(非本地存儲)

[英]What are the alternatives to html5 session storage?(not local storage)

我想要2個javascript方法來訪問某些數據,而無需將此數據作為參數傳遞給任何方法。 基本上,我想要一種方法來設置數據,而另一種方法是使用瀏覽器中已經可用的對象來使用該數據,並且我希望該解決方案能夠與Safari,Firefox,Chrome和IE8 +以及iOS和android瀏覽器一起使用。 我認為會話存儲在iOS上不起作用。 這是正確的嗎? 會話存儲的缺點是什么? 我試圖將數據附加到事件對象,但在Firefox和IE中不起作用。

盡管sessionStorage可用於iOS,但您可以執行以下操作以獲取舊版支持。 您可以使用window.name 它通過會話存在(即,直到關閉瀏覽器選項卡):

var myData = {
  'foo': 'bar',
  'foz': 'baz'
};

window.name = JSON.stringify(myData);

您可以將其讀回:

var myData = JSON.parse(window.name);

當然,這需要瀏覽器的JSON支持,這會使非常老的瀏覽器不在范圍之內。

您可以使用“全局變量”(我在引號中加上了引號,因為我不確定它在Javascript中實際調用了什么)。 但基本上,您可以只在其中一個javascript文件中創建一個對象,然后對其進行寫入/讀取操作。

就像是

var data = { first: "first", second: "second" }

並根據需要在該對象中創建盡可能多的變量。 函數會像

function(param) {
    var firstData = data.first;
}

或者我猜想使用cookie更接近於您所描述的自己的解決方案,但是,如果您只需要在Javascript方法之間傳遞數據,那似乎就太過分了。

我選擇了數據屬性,而不是上面提到的方法,它們對我來說很好用。 IE9和IE8提出了一些我需要解決的問題。 在IE9和IE8中,數據屬性有時起作用,有時不起作用。 在使用控制台查詢元素的數據屬性之后,它們開始工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM