跳转到内容
View in the app

A better way to browse. Learn more.

彼岸论坛

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

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

发表于

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

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

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

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

Featured Replies

No posts to show

创建帐户或登录来提出意见

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.