搜尋
首頁微信小程式小程式開發微信小程式中快取的解析

微信小程式中快取的解析

Jun 23, 2018 pm 02:41 PM
微信小程式快取

這篇文章主要介紹了微信小程式快取(本地快取、非同步快取、同步快取)詳解的相關資料,需要的朋友可以參考下

微信小程式快取

關於本機快取

1.wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorage

##)

##可以對本機快取進行設定、取得和清理。本機快取最大為10MB

2.localStorage 是永久儲存

一、非同步快取

wx. setStorage(OBJECT)

將資料儲存在本機快取中指定的key 中,會覆寫原來該key 對應的內容

wx.setStorage({

 key:"key",

 data:"value"

})

wx.getStorage(OBJECT)

從本機快取中非同步取得指定key 對應的內容。

wx.getStorage({

 key: 'key',

 success: function(res) {

   console.log(res.data)

 }

})

wx.getStorageInfo(OBJECT)

非同步取得目前storage的相關資訊

wx.getStorageInfo({

 success: function(res) {

  console.log(res.keys)

  console.log(res.currentSize)

  console.log(res.limitSize)

 }

})

wx.removeStorage(OBJECT)

#從本機快取中非同步移除指定key 。

wx.removeStorage({

 key: 'key',

 success: function(res) {

  console.log(res.data)

 }

})

 二、同步快取

wx.setStorageSync(KEY,DATA)

將data 儲存在本機快取中指定的key 中,會覆寫原來該key 對應的內容,這是一個同步介面。

wx.getStorageSync(KEY)

#從本機快取中同步取得指定 key 對應的內容。

wx.getStorageInfoSync

同步取得目前storage的相關資訊

wx.removeStorageSync(KEY)

#從本機快取中同步移除指定key 。

三、清理快取wx.clearStorage()

清理本機資料快取。

wx.clearStorageSync()

同步清理本機資料快取

關於同步快取和非同步快取的差異

以Sync(同步,同時)結尾的都是同步緩存,二者的差異是,非同步不會阻塞目前任務,同步快取直到同步方法處理完才能繼續往下執行。

但是一般情況下不要用清除所有的緩存,如果想要清除對應的緩存,設定對應的快取內容為空數組就好

 關於歷史搜尋

<input type="text" class="search-icon" placeholder="请输入要搜索的内容" bindinput="searchNameInput"/>
<text bindtap="setSearchStorage">搜索</text>


<view>
  <view>
    <text style="float:left;" bindtap="deleteHistory">历史搜索</text>
    <text style="float:right;" bindtap="deleteHistory">删除搜索历史</text>
  </view>
  <view>
    <view class="search-list" wx:for="{{searchData}}" wx:key="item">
      <view>{{item == null?&#39;暂无数据&#39;:item}}</view>
    </view>
  </view>
</view>

 頁面

#這裡有三個綁定事件

bindinput=" searchNameInput" 取得使用者輸入的資料

bindtap="setSearchStorage" 設定本機儲存

bindtap="deleteHistory" 刪除歷史搜尋

 //获取用户输入框的值
  searchNameInput:function(e){
    var that = this;
    that.setData({
      inputValue:e.detail.value
    })
  }

e.detail.value就代表了当前输入值

 點擊搜尋的時候,bindtap="setSearchStorage"

##
//将用户输入的内容存入本地缓存,并且将搜索数据放到首页
setSearchStorage:function(){
  var that = this
  if(this.data.inputValue != &#39;&#39;){
    //调用API向本地缓存存入数据
    var searchData = wx.getStorageSync(&#39;searchData&#39;) || [] 
    searchData.push(this.data.inputValue) 
    wx.setStorageSync(&#39;searchData&#39;, searchData)

    //读取用户搜索商品
    var name = this.data.inputValue
    wx.request({
     url: &#39;www.shop.com/home/product/search&#39;,
     data: {name:name},
     method: &#39;GET&#39;, 
     success: function(res){
        that.setData({
        goodsList: res.data.info,
      })
     },
    })
  }
}

# 流程這麼走:

1.用戶輸入數據,點擊搜尋

2.如果數據不為空,加入(設定)本地快取3.去伺服器搜尋用戶想要的數據,賦值給這個頁面的變數

4.點選刪除,去除本機這個key的value

這裡的快取形式的  key=>value

#var searchData = wx.getStorageSync('searchData') || []

取得本機名字為'searchData'的緩存,如果'searchData'這個快取不存在就相當於重新什麼一個空數組,賦值給searchData這個變數

searchData.push(this.data.inputValue)

將使用者輸入的值PUSH進searchData這個變數裡

wx.setStorageSync('searchData', searchData)

#呼叫API接口,重新設定key = 'searchData'的這個快取的value等於searchData

下面的wx.request是請求資料的內容,說膩了,印象夠深了。 這裡沒有綁定取得快取的bindtap,只要取得到,然後加入到Page裡面的data

//从本地获取历史搜索数据

     var searchData = wx.getStorageSync(&#39;searchData&#39;)||[]

      this.setData({

        searchData:searchData

      })

 

deleteHistory

//删除历史搜索数据

  deleteHistory:function(){

    var that = this

    wx.showModal({

    title: &#39;提示&#39;,

    content: &#39;是否删除历史搜索&#39;,

    success: function(res) {

      if (res.confirm) {

        wx.setStorageSync(&#39;searchData&#39;, []);

        wx.switchTab({

          url: &#39;/pages/index/index&#39;,

        })

       }

      }

    })

}

這裡是將'searchData '這個key的快取的value為空數組,而不是使用API​​提供的wx.clearStorageSync,這個會清除其他的所有緩存,而我只是想清除這一個key的緩存

以上就是本文的全部內容,希望對大家的學習有幫助,更多相關內容請關注PHP中文網!

相關推薦:

###微信小程序 彈出視窗自訂的程式碼############微信小程式的訊息提示方塊的實作###################### ####

以上是微信小程式中快取的解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)