成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

 前言

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

如何監聽storage事件,并作出后續處理呢?

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

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

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

HTML5

獲取本地最大存儲上限

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

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

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

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

獲取本地最大存儲的方法

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

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

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

Chrome瀏覽器下

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

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

Safari瀏覽器下

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

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

獲取localStorage的剩余容量

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

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

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

  • 在for...in循環中,通過getItem方法獲取所有已經使用的存儲,然后累加起來

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

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

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

獲取剩余容量

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

storage事件

當localStorage或者sessionStorage中存儲的值發生變化時,就會觸發storage事件。

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

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

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

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

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

頁面A的代碼如下。

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

頁面A

頁面B的代碼如下。

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

頁面B

當我們運行了頁面A和頁面B后,然后在頁面B點擊change按鈕,修改name的值,然后回到頁面A去查看console控制臺,會發現有以下的結果。

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

測試結果

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

自定義storage事件

如果我們想要在當前頁面監聽修改localStorage值的事件,該如何實現呢?

可以通過自定義storage事件來實現。storage事件實際是在調用setItem時觸發,因此我們只需要自定義setItem方法即可。

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

得到的代碼如下。

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

自定義storage事件

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

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

測試代碼

運行的結果和上一節的結果是一樣的。

結束語

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

責任編輯:張燕妮 來源: 頭條科技
相關推薦

2013-05-31 10:57:32

html5html5 api

2015-08-13 09:03:14

調試技巧

2020-01-29 19:40:36

Python美好,一直在身邊Line

2021-01-05 11:22:58

Python字符串代碼

2017-02-23 19:42:55

AS Android代碼

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函數開發

2020-12-14 07:51:16

JS 技巧虛值

2016-09-30 09:17:10

Windows 10批量一鍵恢復

2024-02-01 09:34:06

HTML前端新特性

2017-11-07 21:58:25

前端JavaScript調試技巧

2021-02-28 08:34:14

CSS outline-off負值技巧

2020-11-03 09:51:04

JavaScript開發 技巧

2012-11-23 10:57:44

Shell

2022-12-09 15:06:26

字符串Intl字符串分割

2022-12-21 08:05:04

字符串分割技巧

2011-08-30 09:07:30

HTML 5
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中出 | 欧美在线一区二区视频 | 超碰3| 免费的av网站 | 一级做a爰片性色毛片16 | 一区视频| 91精品国产一区二区三区 | 一区二区免费视频 | 亚洲精品一区二区三区中文字幕 | 日本字幕在线观看 | 欧美性极品xxxx做受 | 999免费视频 | 精品国产一区二区三区久久久蜜月 | 精品1区2区3区4区 | 久久婷婷国产麻豆91 | 亚洲综合天堂 | 奇米久久| 国产精品成人一区二区 | 在线国产视频 | 91免费在线视频 | 国产精品美女久久久久aⅴ国产馆 | 欧美一级二级在线观看 | 91在线视频免费观看 | 欧美精品欧美精品系列 | 国产精品观看 | 91免费小视频 | 毛片com| 九一视频在线观看 | 91精品一区二区三区久久久久久 | 久久成人一区 | 亚洲福利一区二区 | 午夜小视频在线播放 | 99热视 | 天天操天天插天天干 | 日本高清不卡视频 | 亚洲精品一区二区三区蜜桃久 | 国产精品久久久久久久久久久免费看 | 精品一区二区三区在线视频 | 欧美日韩一区二区三区四区 | 日本久久久一区二区三区 | 欧美一区二区三区 |