首頁 微信小程式 小程式開發 微信小程式如何快取獲取資料?

微信小程式如何快取獲取資料?

Apr 14, 2020 am 09:49 AM
微信小程式 快取

微信小程式如何快取獲取資料?

每個微信小程式都可以有自己的本機緩存,可以透過wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx .clearStorageSync)可以對本機快取進行設定、取得和清理。同一個微信用戶,同一個小程式 storage 上限為 10MB 。 localStorage 以使用者維度隔離,同一台裝置上,A 使用者無法讀取到 B 用戶的資料。

資料常用於哪裡?

對於資料需求較少的歷史記錄、購物車事件等都可以使用 storage 進行快取, Storage 將資料儲存在本地快取中指定的 key 中,如果重複會覆寫原來該 key對應的內容可以參考微信小程式開發手冊中的Storage

如何使用非同步介面進行資料快取?

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

OBJECT參數說明:

微信小程式如何快取獲取資料?

範例程式碼

wx.setStorage({ key:key,
    data:value })
登入後複製

當 setStorage 之後可以去到開發者工具裡面查看這是沒有儲存值的情況

微信小程式如何快取獲取資料?

可以看到是沒有 key 值的那麼當我們去進行輸入搜尋

最後再去 storage 中查看

微信小程式如何快取獲取資料?

得到了一個 key 為 history 的 Array 陣列那麼去看看storage

微信小程式如何快取獲取資料?

得到了一個陣列而且沒有被覆蓋,那麼怎麼實現的呢?先來看看js程式碼

search.js

設定data

data: {
    status:false,
    inputsearch:\'\',
    job:[],
    history:[],
},
登入後複製

首先去取得storage中的值 

  onLoad: function (options) {
    var that =this;
    wx.getStorage({
    key: \'history\',
    success: function(res){
        that.setData({
          history:res.data,
        })
        if(that.data.history.length==0){
          that.setData({
            status:false
          });
        }else{
          that.setData({
            status:true
          })
         }
      },
      fail: function(res) {
        console.log(res+\'aaaaa\')
      }
    });
},
登入後複製

進行搜尋和快取資料到storage中

search:function(e){
var that =this;
var sear =this.data.inputsearch;
var jobs=this.data.job;
var input = new RegExp(sear);
var temp = [];
if(sear == \'\'){
 
wx.showToast({
    title: \'请输入要搜索信息\',
    icon:none,
    duration: 1000
  });
 return false;
}else{
   this.data.history.unshift(sear);
wx.setStorage({
  key: \'history\',
  data: that.data.history,
  success: function(res){
    that.setData({
      history:that.data.history,
      status:true
    })
    console.log(res.data);
  },
})
  for(let i =0;i<jobs.length;i++){< span="" style="margin: 0px; padding: 0px;">
    if(input.test(jobs[i].job) || input.test(jobs[i].company) || input.test(jobs[i].address)){
      temp.push(jobs[i]);
    var detail=temp;
    app.globalData.details=detail;
    }
  } 
  if(temp ==\&#39;\&#39;){
     wx.showToast({
    title: \&#39;暂无此信息\&#39;,
    icon:none,
    duration: 1000
    
  });
  this.setData({
    inputsearch:\&#39;\&#39;
  })
  }else if(temp){
    wx.navigateTo({
      url:\&#39;../about/about\&#39;
    })
    this.setData({
      inputsearch:\&#39;\&#39;
    })
  }
 }
},
登入後複製

將 storage 中的 key 值設為 hisotry

wx.setStorage({
  key: \&#39;history\&#39;,
  data: that.data.history,
)}
登入後複製

定義一個陣列history 空數組去取得storage 中的值,首先是去查詢有沒有該key 值,如果沒有則fail ,那麼history 依然為空數組

wx.setStorage({
  key: \&#39;history\&#39;,
  data: that.data.history,
  success: function(res){
    that.setData({
      history:that.data.history,
      status:true
    })
  },
})
登入後複製

返回得到history 之後再去將inputsearch 的值加到history 中

這裡有個誤區可能你會將輸入的值inputsearch push到一個新的空數組,然後再將這個新數組push到history數組中,但這個方法顯然不可行,你添加之後新數組將會存放在history數組的第一個下標的數組下,對於history數組也就只有兩個值

好了,回到我要說的,那麼如何將inputsearch 添加到history 中呢,可以使用unshift 方法或者push 方法,這裡應該使用unshift 應該將每個新增值存放在history 的第一個位置,這是其實就是一個使用者體驗問題了

var that =this;
var sear =this.data.inputsearch;
this.data.history.unshift(sear);
wx.setStorage({
    key: \&#39;history\&#39;,
    data: that.data.history,
      success: function(res){
        that.setData({
          history:that.data.history,
          status:true
        })
        console.log(res.data);
      },
})
登入後複製

好了,這樣就不會出現「覆蓋掉」原來的key 值的問題了

推薦: 《小程式開發教學

以上是微信小程式如何快取獲取資料?的詳細內容。更多資訊請關注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

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
視訊檔案儲存在瀏覽器快取中的位置在哪裡? 視訊檔案儲存在瀏覽器快取中的位置在哪裡? Feb 19, 2024 pm 05:09 PM

瀏覽器快取影片在哪個資料夾在日常使用網路瀏覽器時,我們經常會觀看各種線上視頻,例如在YouTube上看音樂影片或在Netflix上觀看電影等。而這些影片在載入過程中會被瀏覽器快取下來,以便日後再次播放時能夠快速載入。那麼問題來了,這些快取的影片實際上儲存在哪個資料夾中呢?不同瀏覽器的快取視訊資料夾保存位置是不同的。以下我們將分別介紹幾種常見的瀏覽器以及它們

閒魚微信小程式正式上線 閒魚微信小程式正式上線 Feb 10, 2024 pm 10:39 PM

閒魚官方微信小程式悄悄上線,在小程式中可以發布閒置與買家/賣家私訊交流、查看個人資料及訂單、搜尋物品等,有用好奇閒魚微信小程式叫什麼,現在快來看一下。閒魚微信小程式叫什麼答案:閒魚,閒置交易二手買賣估價回收。 1、在小程式中可以發布閒置、與買家/賣家私訊交流、查看個人資料及訂單、搜尋指定物品等功能;2、在小程式的頁面中有首頁、附近、發閒置、訊息、我的5項功能;3、想要使用的話必要要開通微信支付才可以購買;

Linux如何查看和刷新dns快取 Linux如何查看和刷新dns快取 Mar 07, 2024 am 08:43 AM

DNS(DomainNameSystem)是網際網路中用來將網域名稱轉換為對應IP位址的系統。在Linux系統中,DNS快取是一種將網域名稱和IP位址的映射關係儲存在本地的機制,可提高網域解析速度,減輕DNS伺服器的負擔。 DNS快取允許系統在之後存取相同網域名稱時快速檢索IP位址,而不必每次都向DNS伺服器發出查詢請求,從而提高網路效能和效率。本文不念將和大家一起探討如何在Linux上查看和刷新DNS緩存,以及相關的詳細內容和範例程式碼。 DNS快取的重要性在Linux系統中,DNS快取扮演關鍵的角色。它的存在

加速你的應用程式:Guava快取的簡易指南 加速你的應用程式:Guava快取的簡易指南 Jan 31, 2024 pm 09:11 PM

Guava缓存入门指南:加速你的应用程序Guava缓存是一个高性能的内存缓存库,它可以显著提高应用程序的性能。它提供了多种缓存策略,包括LRU(最近最少使用)、LFU(最近最不经常使用)和TTL(生存时间)。1.安装Guava缓存在你的项目中添加Guava缓存库的依赖。com.goog

CPU、記憶體、快取的關係詳細解釋! CPU、記憶體、快取的關係詳細解釋! Mar 07, 2024 am 08:30 AM

CPU(中央處理器)、記憶體(隨機存取記憶體)以及快取之間存在著緊密的相互作用,它們合力構成了電腦系統的關鍵組成部分。它們之間的協調配合,確保了電腦的正常運作和高效性能。 CPU作為電腦的大腦,負責執行各種指令和資料處理;記憶體則用於臨時儲存資料和程序,提供了快速的讀寫存取速度;而快取則起到了緩衝作用,加快了資料的存取速度,提高了電腦的CPU是電腦的核心元件,負責執行各種指令、算術運算和邏輯操作。它被稱為電腦的"大腦",承擔著處理資料和執行任務的重要角色。記憶體是電腦中重要的儲存設備,

會對 HTML 文件進行快取嗎 會對 HTML 文件進行快取嗎 Feb 19, 2024 pm 01:51 PM

標題:HTML檔案的快取機制及程式碼範例導語:在撰寫網頁時,我們常會遇到瀏覽器快取的問題。本文將詳細介紹HTML檔案的快取機制,並提供一些具體的程式碼範例,以幫助讀者更好地理解並應用此機制。一、瀏覽器快取原理在瀏覽器中,每當造訪一個網頁時,瀏覽器會先檢查快取中是否有該網頁的副本。如果有,則直接從快取獲取網頁內容,這就是瀏覽器快取的基本原理。瀏覽器快取機制的好處

閒魚微信小程式叫什麼 閒魚微信小程式叫什麼 Feb 27, 2024 pm 01:11 PM

閒魚官方微信小程式已經悄悄上線,它為用戶提供了一個便捷的平台,讓你可以輕鬆地發布和交易閒置物品。在小程式中,你可以與買家或賣家進行私訊交流,查看個人資料和訂單,以及搜尋你想要的物品。那麼閒魚在微信小程式中究竟叫什麼呢,這篇教學攻略將為您詳細介紹,想要了解的用戶們快來跟著本文繼續閱讀吧!閒魚微信小程式叫什麼答案:閒魚,閒置交易二手買賣估價回收。 1、在小程式中可以發布閒置、與買家/賣家私訊交流、查看個人資料及訂單、搜尋指定物品等功能;2、在小程式的頁面中有首頁、附近、發閒置、訊息、我的5項功能;3、

Spring Boot的效能優化秘技:打造疾風般的快速應用 Spring Boot的效能優化秘技:打造疾風般的快速應用 Feb 25, 2024 pm 01:01 PM

SpringBoot是一款廣受歡迎的Java框架,以其簡單易用和快速開發而聞名。然而,隨著應用程式的複雜性增加,效能問題可能會成為瓶頸。為了幫助您打造疾風般快速的springBoot應用,本文將分享一些實用的效能優化秘訣。優化啟動時間應用程式的啟動時間是使用者體驗的關鍵因素之一。 SpringBoot提供了多種最佳化啟動時間的途徑,例如使用快取、減少日誌輸出和最佳化類別路徑掃描。您可以透過在application.properties檔案中設定spring.main.lazy-initialization

See all articles