热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

微信开发入门(九)本地缓存

目前,微信给每个小程序提供了10M的本地缓存空间(哎哟妈呀好大)有了本地缓存,你的小程序可以做到:
目前,微信给每个小程序提供了10M的本地缓存空间(哎哟妈呀好大)

  1. 有了本地缓存,你的小程序可以做到:

    • 离线应用(已测试在无网络的情况下,可以操作缓存数据)

    • 流畅的用户体验

    • 减少网络请求,节省服务器资源

  2. 哪些数据适合方缓存:

    • 热数据

    • 静态数据(用户数据,服务器授权ID等)

    • 网络地址(图片、文件等网络地址)

    • 分页列表数据及详情内容

  3. 一般的缓存系统采用键值对的方式完成数据插入和读取,通过对key进行一次Hash算法得到一个唯一值,并与value绑定起来;查询的时候对根据Hash后的key查询,算法空间复杂度O(1);

  4. 小程序本地缓存的实现基于上述方式实现。但是数据究竟是存储在ROM,还是存储在RAM后进行持久化,这个问题有待考究。

  5. 对本地缓存数据操作分为同步和异步两种。同步方法有成功回调函数,表示数 据处理成功后的操作。下面是小程序提供本地缓存操作接口:

操作异步方法同步方法
插入wx.setStoragewx.setStorageSync
读取wx.getStoragewx.getStorageSync
删除wx.removeStoragewx.removeStorageSync
清空wx.clearStoragewx.clearStorageSync
获取缓存信息wx.getStorageInfowx.getStorageInfoSync

以Sync结尾都是同步方法。同步方法和异步方法的区别是:

  • 同步方法会堵塞当前任务,直到同步方法处理返回。

  • 异步方法不会塞当前任务。

6.下面以插入缓存的两个方法说明同步和异步的区别:

1. 先调用异步方法,再调用同步方法

 Page({save: function(e){console.log('开始保存')wx.setStorage({
   key: 'key1',
   data: 'data1',
   success: function(res){
    console.log('异步保存成功')  }})wx.setStorageSync('key2', 'data2')console.log('同步保存成功')  }})

执行结果:

可以看出,同步方法比异步方法先保存成功,说明异步方法没有阻塞当前任务。

1.先调用同步方法,再调用异步方法

Page({save: function(e){console.log('开始保存')wx.setStorageSync('key2', 'data2')console.log('同步保存成功')wx.setStorage({
  key: 'key1',
  data: 'data1',
  success: function(res){
    console.log('异步保存成功')  }})  }})

执行结果:
以上是个人在真机测试得到的结果,结果不一定完全准确,仅供参考。


推荐阅读
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
  • 花生壳内网穿透:实现企业智能网关远程管理和维护
    随着物联网技术的发展,企业对智能网关的需求日益增加。本文介绍如何利用花生壳内网穿透技术,实现企业智能网关的远程管理和维护,提高效率,降低成本。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 微信小程序详解:概念、功能与优势
    微信公众平台近期向200位开发者发送了小程序的内测邀请。许多人对微信小程序的概念还不是很清楚。本文将详细介绍微信小程序的定义、功能及其独特优势。 ... [详细]
  • 对于众多创业公司而言,选择小程序或小视频的发展方向至关重要。本文将深入分析小程序和小视频的特点、优势及局限,帮助创业者做出更明智的选择。 ... [详细]
  • 知识图谱与图神经网络在金融科技中的应用探讨
    本文详细介绍了融慧金科AI Lab负责人张凯博士在2020爱分析·中国人工智能高峰论坛上的演讲,探讨了知识图谱与图神经网络模型如何在金融科技领域发挥重要作用。 ... [详细]
  • 华为云HECS:高效能云服务器助力中小企业智能化转型
    华为云凭借其强大的技术创新能力和广泛的服务网络,持续为用户提供高效、稳定、安全的云计算解决方案。本文将深入探讨华为云HECS云服务器如何通过集成智能技术,帮助中小企业实现业务的快速部署与优化。 ... [详细]
  • 本文讲述了一位80后的普通男性程序员,尽管没有高学历,但通过不断的努力和学习,在IT行业中逐渐找到了自己的位置。从最初的仓库管理员到现在的多技能开发者,他的职业生涯充满了挑战与机遇。 ... [详细]
  • 微信小程序中的ActionSheet和Picker组件详解
    本文详细介绍了微信小程序中ActionSheet和Picker组件的使用方法及示例代码,帮助开发者更好地理解和应用这些组件。 ... [详细]
  • 2022年2月 微信小程序 app.json 配置详解:启用调试模式
    本文将详细介绍如何在微信小程序的 app.json 文件中启用调试模式(debug),并通过实际案例展示其配置方法和应用场景。 ... [详细]
  • 如何发送微信语音口令红包
    微信不仅支持传统的文字口令红包,还新增了语音口令红包功能。用户可以通过语音口令来领取红包,增加了趣味性和互动性。本文将详细介绍如何发送微信语音口令红包。 ... [详细]
author-avatar
谢云虎
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有