上一篇文章末尾添加了我个人作品,被判定为推广了,重新发一篇。
如果提到微信云开发,大家都会说“云开发好贵”,我也觉得。
不过我发现主要是贵在“调用次数”上,其他存储费用、CDN 费用和其他平台也差不多,如果其他平台更便宜,也可以在使用云开发的同时把文件存在其他平台。
如果优化好“调用次数”的资源消耗,我觉得云开发的费用并不高。按照 0.5 元一万次的费用计算(买资源包最低能降到 0.25 元一万次),如果平均一个用户每日消耗 100 次(通常消耗不了那么多),那么在“调用次数”的成本上,大概是每个用户每天 0.5 分钱。如果能控制到一个用户每日 20 次调用次数,成本可以降低到每个用户每天 0.1 分钱。
所以我个人觉得,严格控制好“调用次数”的消耗,是降低微信云开发成本的关键。因此我写了一个系列文章来讲解如何降低资源的消耗,此系列文章已经写到第五篇,其中一、二、三这 3 篇文章介绍了云数据库的操作函数,文章四和五则重点介绍了如何使用前端缓存来降低“调用次数”。
简单来说就是通过前端Storage
存储,实现以下功能:
Storage
缓存中读取,不消耗调用次数。// 用户配置改为使用大号字体
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 中还有很多有用的数据库操作函数,这里就不一一列举了。
讲解以上函数的文章:《小白变大神五:大幅降低微信小程序云数据库的调用次数和成本费用》
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.