這個api的作用是,使得網頁可以在瀏覽器端儲存資料。它分成兩類:sessionstorage和localstorage。
sessionstorage儲存的資料用於瀏覽器的一次會話,當會話結束(通常是該視窗關閉),資料被清空;localstorage儲存的資料長期存在,下一次訪問該**的時候,網頁可以直接讀取以前儲存的資料。除了儲存期限的長短不同,這兩個物件的屬性和方法完全一樣。
它們很像cookie機制的強化版,能夠動用大得多的儲存空間。目前,每個網域名稱的儲存上限視瀏覽器而定,chrome是2.5mb,firefox和opera是5mb,ie是10mb。其中,firefox的儲存空間由一級網域名稱決定,而其他瀏覽器沒有這個限制。也就是說,在firefox中,[a.example.com](
和[b.example.com](
共享5mb的儲存空間。另外,與cookie一樣,它們也受同域限制。某個網頁存入的資料,只有同域下的網頁才能讀取。
通過檢查window物件是否包含sessionstorage和localstorage屬性,可以確定瀏覽器是否支援這兩個物件。
function checkstoragesupport() else // localstorage if (window.localstorage) else }
sessionstorage和localstorage儲存的資料,都以「鍵值對」的形式存在。也就是說,每一項資料都有乙個鍵名和對應的值。所有的資料都是以文字格式儲存。
存入資料使用setitem方法。它接受兩個引數,第乙個是鍵名,第二個是儲存的資料。
sessionstorage.setitem("key","value");localstorage.setitem("key","value");
讀取資料使用getitem方法。它只有乙個引數,就是鍵名。
var valuesession = sessionstorage.getitem("key");var valuelocal = localstorage.getitem("key");
removeitem方法用於清除某個鍵名對應的資料。
sessionstorage.removeitem('key');localstorage.removeitem('key');
利用length屬性和key方法,可以遍歷所有的鍵。
for(var i = 0; i < localstorage.length; i++)
其中的key方法,根據位置(從0開始)獲得鍵值。
localstorage.key(1);
當儲存的資料發生變化時,會觸發storage事件。我們可以指定這個事件的**函式。
window.addeventlistener("storage",onstoragechange);
**函式接受乙個event物件作為引數。這個event物件的key屬性,儲存發生變化的鍵名。
function onstoragechange(e)
除了key屬性,event物件的屬性還有三個:
值得特別注意的是,該事件不在導致資料變化的當前頁面觸發。如果瀏覽器同時開啟乙個網域名稱下面的多個頁面,當其中的乙個頁面改變sessionstorage或localstorage的資料時,其他所有頁面的storage事件會被觸發,而原始頁面並不觸發storage事件。可以通過這種機制,實現多個視窗之間的通訊。所有瀏覽器之中,只有ie瀏覽器除外,它會在所有頁面觸發storage事件。
**:
瀏覽器核心 移動端瀏覽器核心
主流瀏覽器核心 1 ie瀏覽器 trident核心 2 firefox瀏覽器 gecko核心 3 safari瀏覽器 webkit核心 4 chrome瀏覽器 blink核心 blink是webkit的乙個分支 5 opera瀏覽器 最初是presto,後來是webkit,現在是blink核心 擴充...
瀏覽器端資料儲存
有時需要將網頁中的一些資料儲存在瀏覽器端,這樣做的好處是,當下次訪問頁面時,不需要再次向伺服器請求資料,直接就可以從本地讀取資料。目前常用的有以下幾種方法 cookie會隨著每次http請求頭資訊一起傳送,無形中增加了網路流量,另外,cookie能儲存的資料容量有限,根據瀏覽器型別不同而不同,ie6...
瀏覽器端使用less
less無法在瀏覽器中直接使用,瀏覽器不能識別 less.js 外掛程式的原理是使用ajax,所以需要以http協議開啟檔案,而不是使用檔案協議 file 這裡使用php開啟乙個臨時的伺服器 引入less檔案,引入less.js外掛程式必須在引入less檔案的link標籤中加入type text l...