摘要:和當(dāng)頁面會(huì)話結(jié)束的時(shí)候,數(shù)據(jù)將會(huì)被清除。大文檔即內(nèi)容安全政策,要求強(qiáng)制瀏覽器啟用,白名單制度,要求瀏覽器那些可以訪問,那些不能訪問。回顧,注冊事件使用的是方法事件有此為四個(gè)事件事件事件為設(shè)置或者移除項(xiàng)的名字或者鍵名。
localStorage 和 sessionStorage
Window.localStorage 當(dāng)頁面會(huì)話結(jié)束的時(shí)候,數(shù)據(jù)將會(huì)被清除。
之前一刷新頁面,直接被清除,后來發(fā)現(xiàn)是瀏覽器插件引入的js腳本,導(dǎo)致出現(xiàn)問題,在思考,如何驗(yàn)證網(wǎng)頁是否被插入js腳本,即,類似于掘金社區(qū)的,每次訪問都會(huì)提示,被插入腳本。此有一個(gè)專業(yè)術(shù)語,叫SRISRI
原理,使用哈希值驗(yàn)證前端資源的完整性。
大文檔 https://developer.mozilla.org...
即內(nèi)容安全政策,要求強(qiáng)制瀏覽器啟用,白名單制度,要求瀏覽器那些可以訪問,那些不能訪問。
localStorage此沒有過期時(shí)間,只有當(dāng)?shù)谌?,或者用戶手?dòng)清理的時(shí)候,才會(huì)清空,其余都會(huì)一直在瀏覽器里保存。
演示
var number = Number(localStorage.number); if (number) { ++number; }else { number = 1; } localStorage.number = number; document.write(number);
js文件如上,每次刷新頁面重新加載的時(shí)候,都會(huì)從瀏覽器中讀取localStorage.number的內(nèi)容。然后進(jìn)行自增。
場景 用于計(jì)數(shù)操作
此為一個(gè)會(huì)話的儲(chǔ)存,儲(chǔ)存在會(huì)話當(dāng)中,關(guān)閉瀏覽器標(biāo)簽以后,將會(huì)被清除,
這兩個(gè)都受到同源的影響,但是sessionStorage最大的不同在于同一個(gè)網(wǎng)站,渲染同一個(gè)頁面,即使是兩個(gè)標(biāo)簽,其sessionStorage不可共享,但是iframe可以共享,localStorage受到同源的影響,可以共享。存儲(chǔ)api
一些瀏覽器廠商定義的api
其中有兩個(gè)方法,為setItem()以及getItem()這兩個(gè)方法可以設(shè)置值,可以獲取值。
一個(gè)demo
localStorage.setItem("x", 1); // 設(shè)置值 localStorage.getItem("x"); // 讀取值 // 枚舉所有的名值對 for(var i = 0; i < localStorage.length; i++) { var name = localStorage.key(i); // 獲取第i對名字 var value = localStorage.getItem(name); // 獲取該對的值 console.log(name + "," + value); // 輸出值 }; localStorage.removeItem("x"); // 刪除x項(xiàng) localStorage.clear(); // 全部刪除
ps: getItem獲取的僅僅是儲(chǔ)存的副本
儲(chǔ)存事件如果儲(chǔ)存在localStorage 以及 sessionStorage的數(shù)據(jù)發(fā)生更改,瀏覽器會(huì)在所有數(shù)據(jù)可見的頁面,觸發(fā)事件
在對數(shù)據(jù)進(jìn)行改變的窗口對象上不會(huì)觸發(fā)該事件
eg;如果兩個(gè)頁面,其中一個(gè)頁面儲(chǔ)存了localStorge,那么另外一個(gè)頁面也會(huì)觸發(fā)儲(chǔ)存的事件。
回顧,注冊事件使用的是addEventListener()方法
事件有key newValue storageArea url
此為四個(gè)事件
key事件為設(shè)置或者移除項(xiàng)的名字或者鍵名。
newValue 保存新項(xiàng)目的值
oldValue 改變或者刪除之前的值
url 觸發(fā)編號的url
stroageArea 為windows對象上的sessionStroage的值
事件是采用廣播機(jī)制的。
ps 如果一個(gè)用戶要求網(wǎng)站停止動(dòng)畫,而這個(gè)配置是儲(chǔ)存在localStroage中的,那么同源的將會(huì)全部停止動(dòng)畫
ps 一個(gè)文本編輯,如果用戶選擇一個(gè)工具的時(shí)候,可以通過其值,完成通知另外窗口的選擇了該工具,用于窗口間的值的傳遞
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/98013.html
摘要:前端存儲(chǔ)和簡述曾在項(xiàng)目中多次使用過和來存放,但一直未深入了解。以為例他們均只能存儲(chǔ)字符串類型的對象存儲(chǔ)大小都為都遵守同源策略不同點(diǎn)有期限,當(dāng)窗口或?yàn)g覽器關(guān)閉時(shí)就會(huì)被銷毀。本文如有錯(cuò)誤,歡迎指出。 H5前端存儲(chǔ) localStorage 和 sessionStorage 簡述 曾在項(xiàng)目中多次使用過localStorage和sessionStorage來存放token,但一直未深入了解。近...
摘要:移動(dòng)端緩存失效是我印象最深的一個(gè)之一,為啥呢,因?yàn)檫@個(gè)問題導(dǎo)致我加班到很晚。的生命周期是僅在當(dāng)前會(huì)話下有效。引入了一個(gè)瀏覽器窗口的概念,是在同源的窗口中始終存在的數(shù)據(jù)。無bug,不程序:作為程序員的我,不是修bug就是在寫bug的路上?! ∫苿?dòng)端sessionStorage緩存失效是我印象最深的一個(gè)bug之一,為啥呢,因?yàn)檫@個(gè)問題導(dǎo)致我加班到很晚。在現(xiàn)在看來就是一個(gè)簡單的概念問題。在我剛工作...
摘要:的使用屬性允許你訪問一個(gè)對象。它與相似,不同之處在于里面存儲(chǔ)的數(shù)據(jù)沒有過期時(shí)間設(shè)置,而存儲(chǔ)在里面的數(shù)據(jù)在頁面會(huì)話結(jié)束時(shí)會(huì)被清除。頁面會(huì)話在瀏覽器打開期間一直保持,并且重新加載或恢復(fù)頁面仍會(huì)保持原來的頁面會(huì)話。 sessionStorge的使用 sessionStorage 屬性允許你訪問一個(gè) session Storage 對象。它與 localStorage 相似,不同之處在于 lo...
摘要:的使用屬性允許你訪問一個(gè)對象。它與相似,不同之處在于里面存儲(chǔ)的數(shù)據(jù)沒有過期時(shí)間設(shè)置,而存儲(chǔ)在里面的數(shù)據(jù)在頁面會(huì)話結(jié)束時(shí)會(huì)被清除。頁面會(huì)話在瀏覽器打開期間一直保持,并且重新加載或恢復(fù)頁面仍會(huì)保持原來的頁面會(huì)話。 sessionStorge的使用 sessionStorage 屬性允許你訪問一個(gè) session Storage 對象。它與 localStorage 相似,不同之處在于 lo...
摘要:的目的就是取代進(jìn)行大量的本地?cái)?shù)據(jù)存儲(chǔ),其中不能進(jìn)行跨會(huì)話存儲(chǔ),這可以使用彌補(bǔ)。刪除由指定的名值對兒。使用方法存儲(chǔ)數(shù)據(jù)使用屬性存儲(chǔ)數(shù)據(jù)使用方法讀取數(shù)據(jù)使用屬性讀取數(shù)據(jù)一般來說,對存儲(chǔ)空間大小的限制都是以每個(gè)源協(xié)議域和端口為單位的。 前言 本文首先介紹web storage和Cookie的對比,解釋web storage的優(yōu)勢;隨后指出怎樣使用插firebug插件的擴(kuò)展firestorag...
閱讀 1646·2021-11-19 11:38
閱讀 3635·2021-11-15 11:37
閱讀 873·2021-09-30 09:48
閱讀 1102·2021-09-29 09:46
閱讀 969·2021-09-23 11:22
閱讀 1950·2019-08-30 15:44
閱讀 3476·2019-08-26 13:58
閱讀 2439·2019-08-26 13:26