如果想在 V2EX 获得更好的推广效果,欢迎了解 PRO 会员机制:
https://www.v2ex.com/pro/about

如果你经常使用铜币置顶主题,持有 V2EX Solana Token 会在每日签到时获得额外铜币:
https://www.v2ex.com/solana
sdjl
V2EX  ›  推广

利用前端缓存技术,大幅度降低微信小程序云开发的“调用次数”、成本、费用!

  •  
  •   sdjl · Sep 27, 2024 · 1480 views
    This topic created in 617 days ago, the information mentioned may be changed or developed.

    上一篇文章末尾添加了我个人作品,被判定为推广了,重新发一篇。

    云开发贵不贵要看业务情况

    如果提到微信云开发,大家都会说“云开发好贵”,我也觉得。

    不过我发现主要是贵在“调用次数”上,其他存储费用、CDN 费用和其他平台也差不多,如果其他平台更便宜,也可以在使用云开发的同时把文件存在其他平台。

    如果优化好“调用次数”的资源消耗,我觉得云开发的费用并不高。按照 0.5 元一万次的费用计算(买资源包最低能降到 0.25 元一万次),如果平均一个用户每日消耗 100 次(通常消耗不了那么多),那么在“调用次数”的成本上,大概是每个用户每天 0.5 分钱。如果能控制到一个用户每日 20 次调用次数,成本可以降低到每个用户每天 0.1 分钱。

    所以我个人觉得,严格控制好“调用次数”的消耗,是降低微信云开发成本的关键。因此我写了一个系列文章来讲解如何降低资源的消耗,此系列文章已经写到第五篇,其中一、二、三这 3 篇文章介绍了云数据库的操作函数,文章四和五则重点介绍了如何使用前端缓存来降低“调用次数”。

    简单来说就是通过前端Storage存储,实现以下功能:

    1. 写入数据时,仅写入实际变化的数据,可仅消耗 1 次“调用次数”写入多条数据。
    2. 读取数据时,从前端Storage缓存中读取,不消耗调用次数。
    3. 所有的读写数据库操作都很简单、高效、易用,代码简洁。

    代码样例

    // 用户配置改为使用大号字体
    utils.setUserConfig(coll, 'page.big_font', true)
    
    // 记录用户最近提交的内容
    utils.setUserConfig(coll, 'post.content', ‘用户输入的文字...’)
    
    // 把用户收藏的文章添加到收藏列表中(数组)
    utils.pushUserConfig(coll, 'favorite_articles', article_obj)
    
    // 取消用户收藏
    utils.pluckUserConfig(coll, 'favorite_articles', article_obj)
    
    // 读取用户关于页面显示的配置值
    const page_config_obj = await utils.getUserConfig(coll, 'page')
    
    // 读取多个配置值
    const user_config_obj = await utils.getUserConfigObj(coll, {
      page: {}, // {} 是默认值
      'post.content': 'default_value'
    })
    
    // 把要写的数据先放入缓冲区(不会消耗调用次数)
    utils.setUserConfigBuffer(coll, 'page.big_font', true)
    utils.setUserConfigBuffer(coll, 'favorite_articles', []) // 清空收藏
    utils.setUserConfigBuffer(coll, 'post.content', '这是用户最近提交的内容')
    
    // 一次性写入所有缓冲区数据(仅消耗 1 次调用次数)
    utils.flushUserConfigBuffer(coll)
    

    上面代码样例中,coll 是写入数据库的表名。

    所有读取操作不消耗“调用次数”,且读取操作是瞬间完成的

    由于Storage是长期存储在用户手机上的,因此就算用户改天、下周、几个月后再次打开小程序,读取数据库操作也不会消耗“调用次数”

    utils 中还有很多有用的数据库操作函数,这里就不一一列举了。

    文章

    讲解以上函数的文章:《小白变大神五:大幅降低微信小程序云数据库的调用次数和成本费用》

    Gitbub 开源项目地址

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2835 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 04:00 · PVG 12:00 · LAX 21:00 · JFK 00:00
    ♥ Do have faith in what you're doing.