V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sdjl
V2EX  ›  推广

微信云开发好贵啊,用这个降低小程序的“调用次数”和成本、费用吧!

  •  
  •   sdjl · 53 天前 · 828 次点击
    这是一个创建于 53 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    不过我发现主要是贵在“调用次数”上,其他存储费用、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 开源项目地址

    给自己打个广告

    我目前专注微信小程序云开发,可接小程序定制开发外包项目,联系方式: [email protected]

    下面放两个我自己设计,用云开发写的微信小程序:

    绘图助手

    Midjourney 提示词生成器,另有 4000+原创模板。

    点点手指-定制合同

    通过简单回答问题,智能定制合同,下载 Word 打印。

    3 条回复
    proxychains
        1
    proxychains  
       53 天前
    @Livid 推广
    sdjl
        2
    sdjl  
    OP
       53 天前
    @proxychains 不可以在文章里面推广自己的小程序吗? 不太了解规则,如果不可以我就删除吧。
    Livid
        3
    Livid  
    MOD
       53 天前
    @sdjl https://www.v2ex.com/help/node

    可以发,请发到 /go/promotions 节点。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3184 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:25 · PVG 21:25 · LAX 05:25 · JFK 08:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.