摘要:事件接口儲(chǔ)存的數(shù)據(jù)發(fā)生變化時(shí),會(huì)觸發(fā)事件,可以指定這個(gè)事件的監(jiān)聽(tīng)函數(shù)。這個(gè)實(shí)例對(duì)象繼承了接口,有幾個(gè)特有的屬性,都是只讀屬性。字符串,表示發(fā)生變動(dòng)的鍵名。對(duì)象,返回鍵值對(duì)所在的整個(gè)對(duì)象。
概述
sessionStorage保存的數(shù)據(jù)用于瀏覽器的一次會(huì)話(session),當(dāng)會(huì)話結(jié)束(通常是窗口關(guān)閉),數(shù)據(jù)被清空;localStorage保存的數(shù)據(jù)長(zhǎng)期存在,下一次訪問(wèn)該網(wǎng)站的時(shí)候,網(wǎng)頁(yè)可以直接讀取以前保存的數(shù)據(jù)。除了保存期限的長(zhǎng)短不同,這兩個(gè)對(duì)象的其他方面都一致。
保存的數(shù)據(jù)都以“鍵值對(duì)”的形式存在
所有的數(shù)據(jù)都是以文本格式保存
某個(gè)網(wǎng)頁(yè)存入的數(shù)據(jù),只有同域下的網(wǎng)頁(yè)才能讀取,如果跨域操作會(huì)報(bào)錯(cuò)
屬性和方法Storage 接口只有一個(gè)屬性。
Storage.length:返回保存的數(shù)據(jù)項(xiàng)個(gè)數(shù)。
Storage.setItem()無(wú)返回值
window.sessionStorage.setItem("key", "value");
window.localStorage.setItem("key", "value");
window.localStorage.foo = "123";
window.localStorage["foo"] = "123";
window.localStorage.setItem("foo", "123");
Storage.key()接受一個(gè)整數(shù)作為參數(shù)(從零開(kāi)始),返回該位置對(duì)應(yīng)的鍵值。
for (var i = 0; i < window.localStorage.length; i++) {
console.log(localStorage.key(i));
}
Storage 接口儲(chǔ)存的數(shù)據(jù)發(fā)生變化時(shí),會(huì)觸發(fā) storage 事件,可以指定這個(gè)事件的監(jiān)聽(tīng)函數(shù)。
window.addEventListener("storage", onStorageChange);
監(jiān)聽(tīng)函數(shù)接受一個(gè)event實(shí)例對(duì)象作為參數(shù)。這個(gè)實(shí)例對(duì)象繼承了 StorageEvent 接口,有幾個(gè)特有的屬性,都是只讀屬性。
StorageEvent.key:字符串,表示發(fā)生變動(dòng)的鍵名。如果 storage 事件是由clear()方法引起,該屬性返回null。
StorageEvent.newValue:字符串,表示新的鍵值。如果 storage 事件是由clear()方法或刪除該鍵值對(duì)引發(fā)的,該屬性返回null。
StorageEvent.oldValue:字符串,表示舊的鍵值。如果該鍵值對(duì)是新增的,該屬性返回null。
StorageEvent.storageArea:對(duì)象,返回鍵值對(duì)所在的整個(gè)對(duì)象。也說(shuō)是說(shuō),可以從這個(gè)屬性上面拿到當(dāng)前域名儲(chǔ)存的所有鍵值對(duì)。
StorageEvent.url:字符串,表示原始觸發(fā) storage 事件的那個(gè)網(wǎng)頁(yè)的網(wǎng)址。
注意,該事件有一個(gè)很特別的地方,就是它不在導(dǎo)致數(shù)據(jù)變化的當(dāng)前頁(yè)面觸發(fā),而是在同一個(gè)域名的其他窗口觸發(fā)
也就是說(shuō),如果瀏覽器只打開(kāi)一個(gè)窗口,可能觀察不到這個(gè)事件。比如同時(shí)打開(kāi)多個(gè)窗口,當(dāng)其中的一個(gè)窗口導(dǎo)致儲(chǔ)存的數(shù)據(jù)發(fā)生改變時(shí),只有在其他窗口才能觀察到監(jiān)聽(tīng)函數(shù)的執(zhí)行??梢酝ㄟ^(guò)這種機(jī)制,實(shí)現(xiàn)多個(gè)窗口之間的通信。
參考鏈接
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/106155.html
摘要:為所有對(duì)外提供服務(wù)的資源實(shí)現(xiàn)了一套通用的符合要求的操作接口,每個(gè)服務(wù)接口負(fù)責(zé)處理一類資源對(duì)象。該接口最終返回了的和清除操作資源的接口。 源碼版本 Kubernetes v1.5.0 簡(jiǎn)介 k8s的各個(gè)組件與apiServer交互操作各種資源對(duì)象,最終都會(huì)落入到etcd中。k8s為所有對(duì)外提供服務(wù)的Restful資源實(shí)現(xiàn)了一套通用的符合Restful要求的etcd操作接口,每個(gè)服務(wù)接口負(fù)...
摘要:前言了解的同學(xué)都知道,對(duì)外提供接口提供查詢,監(jiān)聽(tīng)集群資源狀態(tài)的服務(wù),主要就做一件事,就是如何將接口調(diào)用映射到對(duì)后端存儲(chǔ)比如的增刪改查訪問(wèn),在設(shè)計(jì)的時(shí)候考慮到是個(gè)快速迭代的開(kāi)源項(xiàng)目,很多接口版本可能在未來(lái)版本發(fā)生變化,因此如何設(shè)計(jì)一個(gè)擴(kuò)展 前言 了解 k8s 的同學(xué)都知道,kube-apiserver 對(duì)外提供 RESTful API 接口提供 查詢,監(jiān)聽(tīng)集群(資源)狀態(tài)的服務(wù),kube...
摘要:前言了解的同學(xué)都知道,對(duì)外提供接口提供查詢,監(jiān)聽(tīng)集群資源狀態(tài)的服務(wù),主要就做一件事,就是如何將接口調(diào)用映射到對(duì)后端存儲(chǔ)比如的增刪改查訪問(wèn),在設(shè)計(jì)的時(shí)候考慮到是個(gè)快速迭代的開(kāi)源項(xiàng)目,很多接口版本可能在未來(lái)版本發(fā)生變化,因此如何設(shè)計(jì)一個(gè)擴(kuò)展 前言 了解 k8s 的同學(xué)都知道,kube-apiserver 對(duì)外提供 RESTful API 接口提供 查詢,監(jiān)聽(tīng)集群(資源)狀態(tài)的服務(wù),kube...
摘要:類實(shí)現(xiàn)了對(duì)象存儲(chǔ)映射表,應(yīng)用于需要唯一標(biāo)識(shí)多個(gè)對(duì)象的存儲(chǔ)場(chǎng)景。在之前僅能存儲(chǔ)對(duì)象,之后可以針對(duì)每個(gè)對(duì)象添加一條對(duì)應(yīng)的數(shù)據(jù)。實(shí)際上他們并沒(méi)有直接的關(guān)系。 1. 定義 php.net上的定義 The SplObjectStorage class provides a map from objects to data or, by ignoring data, an object set. ...
摘要:前言本文介紹是如何訪問(wèn)后端存儲(chǔ)相關(guān)源代碼主要在通用接口原文注釋定義了后端存儲(chǔ)的通用接口,主要是一些增刪改查方法,這種面向接口編程,將實(shí)現(xiàn)和設(shè)計(jì)分離的設(shè)計(jì)提高了軟件的可擴(kuò)展性,降低了模塊間的耦合度,比如只要我們提供的具體實(shí)現(xiàn),那么除了使用 前言 本文介紹 kube-apiserver 是如何訪問(wèn) etcd 后端存儲(chǔ) 相關(guān)源代碼主要在 kubernetes/staging/src/k8s....
閱讀 2590·2021-10-19 11:41
閱讀 2425·2021-09-01 10:32
閱讀 3386·2019-08-29 15:21
閱讀 1764·2019-08-29 12:20
閱讀 1172·2019-08-29 12:13
閱讀 608·2019-08-26 12:24
閱讀 2527·2019-08-26 10:26
閱讀 842·2019-08-23 18:40