注冊(cè)登錄

優(yōu)化小程序自身的Storage

2018-09-28
導(dǎo)讀:1、小程序中的存儲(chǔ)只有 Storage ,特性如下: 上限為 10MB 以用戶緯度隔離,同一個(gè)設(shè)備, A 無(wú)法訪問(wèn) B 用戶的數(shù)據(jù)。 持久緩存,只有在用戶關(guān)掉小程序才會(huì)刪除,如果空間不足,會(huì)進(jìn)行...

1、小程序中的存儲(chǔ)只有 Storage ,特性如下:

 

  1. 上限為 10MB
  2. 以用戶緯度隔離,同一個(gè)設(shè)備,A 無(wú)法訪問(wèn) B 用戶的數(shù)據(jù)。
  3. 持久緩存,只有在用戶關(guān)掉小程序才會(huì)刪除,如果空間不足,會(huì)進(jìn)行 LRU ,也就是不經(jīng)常使用的小程序的數(shù)據(jù)緩存區(qū)域會(huì)被全部清空。
  4. 在體驗(yàn)版、開(kāi)發(fā)版、和線上版都共用一套,并不會(huì)隔離。
  5. 沒(méi)有 Cookie

2、因此我們要在 Storage 中隔離一個(gè) Cookie ,用來(lái)模擬瀏覽器中的 Cookie ,解析接口返回的 Header,設(shè)置 Cookie,在發(fā)送接口請(qǐng)求前,自動(dòng)帶上 Cookie。

從上面知道,storage 不會(huì)自動(dòng)銷毀,而是在小程序銷毀的時(shí)候再銷毀。我們先了解一下小程序的運(yùn)行機(jī)制。

小程序運(yùn)行機(jī)制:

小程序沒(méi)有重啟的概念  當(dāng)小程序進(jìn)入后臺(tái),客戶端會(huì)維持一段時(shí)間的運(yùn)行狀態(tài),超過(guò)一定時(shí)間后(目前是5分鐘)會(huì)被微信主動(dòng)銷毀  置頂?shù)男〕绦虿粫?huì)被微信主動(dòng)銷毀  當(dāng)收到系統(tǒng)內(nèi)存告警也會(huì)進(jìn)行小程序的銷毀

代碼實(shí)現(xiàn):

 

  1. const storage = {
  2. set(){}, //設(shè)置緩存
  3. get(){}, //獲取緩存
  4. remove(){}, // 移除緩存
  5. checkAndClearExpired(){}, //將過(guò)期緩存清理掉
  6.   isExpired() {} //判斷是否過(guò)期
  7. }

在 storage 中隔離一個(gè)字段,用來(lái)做 cookie

 

  1. let cookie = (function(){
  2. return wx.getStorageSync('cookies');
  3. }())
  4. const Cooke = {
  5. getCookie(){}, //從內(nèi)存中獲取cookie
  6. setCookie(){}, // 設(shè)置cookie
  7. setCookieInHeader(){}, //根據(jù)response的Header設(shè)置cookie
  8. removeCookie() {}, //刪除cookie
  9. isExpired() {} //判斷是否過(guò)期
  10. }

在設(shè)置storage的時(shí)候,增加一個(gè)字段 expire 用來(lái)表示過(guò)期時(shí)間。簡(jiǎn)化代碼如下:

 

  1. function isExpired (expires) {
  2. // 小于等于現(xiàn)在時(shí)間為過(guò)期
  3. if (new Date(expires) <= new Date()) {
  4. return true;
  5. }
  6. }

 

重磅推薦:小程序開(kāi)店目錄

第一部分:小商店是什么

第二部分:如何開(kāi)通一個(gè)小商店

第三部分:如何登錄小商店

第四部分:開(kāi)店任務(wù)常見(jiàn)問(wèn)題

第五部分:小商店可以賣什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收貨/物流

第九部分:小程序怎么結(jié)算

第十部分:小程序客服

第十一部分:電商創(chuàng)業(yè)

第十二部分:小程序游戲開(kāi)發(fā)

電話咨詢 微信咨詢 預(yù)約演示 0元開(kāi)店