如何做前端快取,防止記憶體溢位,npm-storage短小精悍的前端快取外掛

firestorm1468563334537發表於2018-07-27

一,先介紹一下前端常用的幾種快取 1.Cookie

cookie是比較老的前端快取技術了,它的特點是想要使用它前端必須要有服務(靜態網頁是不行的),而且儲存大小限制在4kb。那麼為什麼必須要有服務才能使用cookie呢?因為只要有請求涉及cookie,cookie就要在伺服器和瀏覽器之間來回傳送,而且由於瀏覽器的跨域限制,客戶端和服務端必須要保證同源的原則(也就是跨域問題,詳情見我的其他文章),由於cookie是存放在前端的,所以安全問題一直是個大問題,因此一般重要的資訊不建議放在cookie中存放。

2.Session 對於服務端的程式猿來說session大家肯定很熟悉了,session是一種服務端的機制,也就是能把資訊存放在服務端,所以安全可以保障,它的原理是通過session id來識別客戶端,這個session id是存放在cookie中的(當然session id讓使用者看見沒無妨),服務端會通過session id來識別客戶端進行匹配和判斷。它和cookie對比起來差距就很明顯了,一個是把資料存在客戶端;一個存在服務端,從安全性考慮的話一般像使用者名稱密碼這種私密資訊一般放在session中。 3.localStorage 它的特點就是“持久”,一旦通過儲存,不通過手動清除的話,就會一直儲存在前端,它的儲存格式是鍵值對的方式也就是“key-value”的方式儲存的,它的儲存空間大小限制在500萬字元左右,一下是它的一些使用方法:

localStorage.length 獲得storage中的個數

localStorage.key(n) 獲得storage中第n個元素對的鍵值(第一個元素是0)

localStorage.getItem(key) 獲取鍵值key對應的值

localStorage.key 獲取鍵值key對應的值

localStorage.setItem(key, value) 新增資料,鍵值為key,值為value

localStorage.removeItem(key) 移除鍵值為key的資料

localStorage.clear() 清除所有資料

4.sessionStorage 這個和localStorage有什麼區別呢?sessionStorage是一種會話級別的本地儲存,一旦關閉瀏覽器他就會消失,而前者是很“持久”的,即使你關閉一萬次瀏覽器也沒事,所以差距還是很大的。後兩者是H5才有的特性,因為現在都是前後端分離的開發模式,前端工程師都很青睞這兩種前端快取方式,以下是sessionStorage的記本用法:

sessionStorage.length 獲得storage中的個數

sessionStorage.key(n) 獲得storage中第n個元素對的鍵值(第一個元素是0)

sessionStorage.getItem(key) 獲取鍵值key對應的值

sessionStorage.key 獲取鍵值key對應的值

sessionStorage.setItem(key, value) 新增資料,鍵值為key,值為value

sessionStorage.removeItem(key) 移除鍵值為key的資料

二,npm-storage外掛介紹 這是一個H5的快取外掛,在專案中經常會使用localStorage或sessionStorage來快取資料, 為了使程式碼更精煉整潔,有經驗有能力的開發同學都會對快取的方法做封裝。 作者已幫你造好了這個輪子,拿來即用!!! 外掛下載 使用npm:npm install npm-storage

使用git 一,ssh方式:git clone git@github.com:catbea/npm-storage.git 二,https方式:git clone https://github.com/catbea/npm-storage.git 使用方法和npm-storage的api詳解 首先在html檔案中引入js(根據你專案的路徑)

(提示:眾所周知,H5的快取有兩個,一是永久快取localStorage,二是會話級快取sessionStorage) 在本外掛中 MyLStorage 代表localStorage MySStorage 代表sessionStorage 增加快取(MyLStorage和MySStorage使用方法一致) MyLStorage.set(key,value);

獲取快取 MyLStorage.get(key);

刪除某一個快取 MyLStorage.remove(key);

清除所有快取 MyLStorage.clear();

api介紹完畢!!!以下是專案地址

原始碼下載地址 https://github.com/catbea/npm-storage/releases

更多詳細介紹在請訪問專案地址或者官網 專案地址 https://github.com/catbea/npm-storage(小哥哥小姐姐可以給個小start麼)

官網地址 https://catbea.github.io/npm-storage.github.io

有任何疑問請留言!!!!

相關文章