小程序模板網(wǎng)

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

發(fā)布時間:2018-09-28 09:03 所屬欄目:小程序開發(fā)教程

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

 

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

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

從上面知道,storage 不會自動銷毀,而是在小程序銷毀的時候再銷毀。我們先了解一下小程序的運行機(jī)制。

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

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

代碼實現(xiàn):

 

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

在 storage 中隔離一個字段,用來做 cookie

 

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

在設(shè)置storage的時候,增加一個字段 expire 用來表示過期時間。簡化代碼如下:

 

				
  1. function isExpired (expires) {
    // 小于等于現(xiàn)在時間為過期
    if (new Date(expires) <= new Date()) {
    return true;
    }
    }

這樣子,整體的流程如下:

到底了,不知道是不是越來越懶了,博文寫得越來越短。。。



易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://22321a.com/wxmini/doc/course/24846.html 復(fù)制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢:800182392 點擊咨詢
QQ在線咨詢