偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

HTML5新特性之localStorage的使用技巧,不看看你可能真的不知道

新聞 存儲
我們都知道localStorage與sessionStorage是用于本地存儲的,那么我們該如何獲取本地存儲的大小呢?如何監(jiān)聽storage事件,并作出后續(xù)處理呢?

 前言

我們都知道localStorage與sessionStorage是用于本地存儲的,那么我們該如何獲取本地存儲的大小呢?

如何監(jiān)聽storage事件,并作出后續(xù)處理呢?

今天這篇我們就一起來看看吧,文中的算法代碼,已經(jīng)放到了github上了,感興趣的同學(xué)可以自取。

https://github.com/zhouxiongking/article-pages/tree/master/articles/H5Storage

HTML5新特性之localStorage的使用技巧,不看看你可能真的不知道

HTML5

獲取本地最大存儲上限

localStorage與sessionStorage是一樣的,我們就以localStorage為例進行代碼編寫。

主要思想:在localStorage中存儲的信息都是{key: value}的字符串形式,所以只要我們通過setItem方法不停的加存儲值的長度,直到拋出異常為止,我們就可以在catch中獲取到本地存儲的最大值。

通過以上的思想,我們可以得到以下的代碼。

HTML5新特性之localStorage的使用技巧,不看看你可能真的不知道

獲取本地最大存儲的方法

我們可以直接將上述代碼復(fù)制到控制臺的console欄下運行,就可以得到瀏覽器的本地最大存儲的大小。

以下是在Chrome瀏覽器下的運行結(jié)果,從中可以看出Chrome瀏覽器的本地最大存儲大小為5.12M。

HTML5新特性之localStorage的使用技巧,不看看你可能真的不知道

Chrome瀏覽器下

以下是在Safari瀏覽器下的運行結(jié)果,從中可以看出Safari瀏覽器的本地存儲大小為2.56M。

HTML5新特性之localStorage的使用技巧,不看看你可能真的不知道

Safari瀏覽器下

從實際的運行結(jié)果可以看出不同的瀏覽器的本地存儲localStorage大小是不同的。

如果想看看其他的瀏覽器的localStorage最大值,可以直接運行上述代碼。

獲取localStorage的剩余容量

有的時候我們在使用localStorage存放數(shù)據(jù)時,需要知道當(dāng)前還剩余多少容量,該怎么辦呢?

主要思想:我們同樣用到localStorage中存放值是{key: value}字符串的原理。

  • 先通過上一節(jié)中的方法獲取localStorage存儲的最大值

  • 在for...in循環(huán)中,通過getItem方法獲取所有已經(jīng)使用的存儲,然后累加起來

  • 最大值減去已經(jīng)使用的存儲空間,即可獲取剩余的容量

通過以上的思想,我們可以得到以下的代碼。

HTML5新特性之localStorage的使用技巧,不看看你可能真的不知道

獲取剩余容量

通過上述的代碼我們就可以獲取localStorage的剩余容量了。

storage事件

當(dāng)localStorage或者sessionStorage中存儲的值發(fā)生變化時,就會觸發(fā)storage事件。

類似于click事件一樣,localStorage與sessionStorage也可以觸發(fā)storage事件,其定義的方式也是一樣,可以通過addEventListener來實現(xiàn)。

但是需要注意的是:在默認情況下storage事件的觸發(fā)是發(fā)生在同源下的不同頁面中的。

上面這句話的意思是,如果我們在一個頁面修改localStorage中存儲的值,然后在同一個頁面設(shè)置storage事件,這樣是無效的。

當(dāng)然我們可以修改默認的storage事件,改為自定義的方式,這個放在下節(jié)來講。

為了印證上述的觀點,我們使用兩個頁面,在頁面A中通過localStorage給變量name設(shè)置初始值kingx,并且設(shè)置監(jiān)聽storage事件,然后在頁面B中改變變量name的值為kingx2,最后來看看是否觸發(fā)了頁面A的storage事件。

頁面A的代碼如下。

HTML5新特性之localStorage的使用技巧,不看看你可能真的不知道

頁面A

頁面B的代碼如下。

HTML5新特性之localStorage的使用技巧,不看看你可能真的不知道

頁面B

當(dāng)我們運行了頁面A和頁面B后,然后在頁面B點擊change按鈕,修改name的值,然后回到頁面A去查看console控制臺,會發(fā)現(xiàn)有以下的結(jié)果。

HTML5新特性之localStorage的使用技巧,不看看你可能真的不知道

測試結(jié)果

通過上述結(jié)果可以看出觀點的正確性。

自定義storage事件

如果我們想要在當(dāng)前頁面監(jiān)聽修改localStorage值的事件,該如何實現(xiàn)呢?

可以通過自定義storage事件來實現(xiàn)。storage事件實際是在調(diào)用setItem時觸發(fā),因此我們只需要自定義setItem方法即可。

同一個頁面下,在自定義的setItem方法中,自定義一個事件,然后使用window監(jiān)聽這個自定義事件。

得到的代碼如下。

HTML5新特性之localStorage的使用技巧,不看看你可能真的不知道

自定義storage事件

我們可以通過以下的代碼來進行驗證。

HTML5新特性之localStorage的使用技巧,不看看你可能真的不知道

測試代碼

運行的結(jié)果和上一節(jié)的結(jié)果是一樣的。

結(jié)束語

本篇文章中主要介紹了與localStorage的幾個算法,大家學(xué)會了嗎?

責(zé)任編輯:張燕妮 來源: 頭條科技
相關(guān)推薦

2013-05-31 10:57:32

html5html5 api

2017-02-23 19:42:55

AS Android代碼

2015-08-13 09:03:14

調(diào)試技巧

2020-01-29 19:40:36

Python美好,一直在身邊Line

2021-01-05 11:22:58

Python字符串代碼

2020-08-11 11:20:49

Linux命令使用技巧

2021-07-12 07:59:06

安全 HTML 屬性

2024-03-04 00:00:00

Kubernetes技巧API

2022-09-20 11:58:27

NpmNode.js

2022-05-05 12:02:45

SCSS函數(shù)開發(fā)

2016-09-30 09:17:10

Windows 10批量一鍵恢復(fù)

2020-12-14 07:51:16

JS 技巧虛值

2012-11-23 10:57:44

Shell

2021-02-28 08:34:14

CSS outline-off負值技巧

2020-11-03 09:51:04

JavaScript開發(fā) 技巧

2017-11-07 21:58:25

前端JavaScript調(diào)試技巧

2024-02-01 09:34:06

HTML前端新特性

2011-08-30 09:07:30

HTML 5

2022-12-09 15:06:26

字符串Intl字符串分割

2022-12-21 08:05:04

字符串分割技巧
點贊
收藏

51CTO技術(shù)棧公眾號