- 利用前端缓存技术,大幅度降低微信小程序云开发的“调用次数”、成本、费用!
如果提到微信云开发,大家都会说“云开发好贵”,我也觉得。 不过我发现主要是贵在“调用次数”上,其他存储费用、CDN费用和其他平台也差不多,如果其他平台更便宜,也可以在使用云开发的同时把文件存在其他平台。 如果优化好“调用次数”的资源消耗,我觉得云开发的费用并不高。按照 0.5元一万次的费用计算(买资源包最低能降到0.25元一万次),如果平均一个用户每日消耗100次(通常消耗不了那么多),那么在“调用次数”的成本上,大概是每个用户每天0.5分钱。如果能控制到一个用户每日20次调用次数,成本可以降低到每个用户每天0.1分钱。 所以我个人觉得,严格控制好“调用次数”的消耗,是降低微信云开发成本的关键。因此我写了一个系列文章来讲解如何降低资源的消耗,此系列文章已经写到第五篇,其中一、二、三这3篇文章介绍了云数据库的操作函数,文章四和五则重点介绍了如何使用前端缓存来降低“调用次数”。 简单来说就是通过前端[代码]Storage[代码]存储,实现以下功能: 写入数据时,仅写入实际变化的数据,可仅消耗1次“调用次数”写入多条数据。 读取数据时,从前端[代码]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中还有很多有用的数据库操作函数,这里就不一一列举了。 讲解以上函数的文章:《小白变大神五:大幅降低微信小程序云数据库的调用次数和成本费用》 Gitbub开源项目地址:WxMpCloudBooster
2024-10-21 - 小程序发布新版本,部分客户还是停留在老版本的界面,新界面出不来,还有出现白屏无界面的情况,怎么回事?
[图片]
2023-11-28 - 举报一个每天晚上长期大量使用微信公众号发布赌博文章的黑产团伙!希望腾讯安全部门能够重视严厉打击网络赌博
尊敬的腾讯微信公众号管理员你好: 这个长期通过大量微信公众号发布关键词【开云体育app下载链接】的文章引流赌博,文章里面会添加赌博网站,这个网址设置成了透明字体,点击文章里面看不见,只有在微信搜一搜综合首页才能看见,这就导致不管用户会怎么举报都会失败,我希望腾讯微信公众平台相关负责人看见我的帖子能够严厉打击利用微信公众号引流赌博的账号!也希望相关客服能够联系我,回复我的私信,因为这个赌博团伙每天都在进行引流诈骗,每天晚上都会大量发布赌博文章引流,为了不让更多的人上当受骗,我会一直举报这个长期通过微信公众号发布赌博文章的黑产 违法微信公众号昵称1:姑娘与酒 违法微信公众号昵称2:卷卷不动了[图片][图片]尊敬的腾讯微信公众号管理员你好: 这个长期通过大量微信公众号发布关键词【开云体育app下载链接】的文章引流赌博,文章里面会添加赌博网站,这个网址设置成了透明字体,点击文章里面看不见,只有在微信搜一搜综合首页才能看见,这就导致不管用户会怎么举报都会失败,我希望腾讯微信公众平台相关负责人看见我的帖子能够严厉打击利用微信公众号引流赌博的账号!也希望相关客服能够联系我,回复我的私信,因为这个赌博团伙每天都在进行引流诈骗,每天晚上都会大量发布赌博文章引流,为了不让更多的人上当受骗,我会一直举报这个长期通过微信公众号发布赌博文章的黑产 违法微信公众号昵称1:姑娘与酒 违法微信公众号昵称2:卷卷不动了[图片][图片]
2023-10-20 - 一个组件解决隐私授权:小程序用户隐私保护授权弹窗组件
项目链接:https://github.com/94xy/miniprogram-privacy 效果预览: [图片] 使用方法: 1、复制项目 [代码]component[代码] 文件夹中的 [代码]privacy[代码] 文件夹到小程序项目中的组件目录; 2 、在 page.json 中引入组件 { "usingComponents": { "Privacy": "/component/privacy/privacy" } } 3 、在 page.wxml 中使用组件,需要授权显示弹窗,不需要不显示 <Privacy /> 4 、可以在所有使用了隐私接口的页面都加上该组件,授权一次之后使用所有隐私接口不再需要授权 跳过阅读: 可以不阅读就点击“同意”按钮 <Privacy skipRead="{{true}}" /> 流程: 页面显示时使用 wx.getPrivacySetting 接口查询是否需要授权,需要授权则显示组件;用户点击“拒绝”直接退出小程序,用户点击“同意”关闭弹窗并同步给微信,之后可以正常使用所有隐私接口。 注意事项: 2023 年 9 月 15 号之前,默认不会启用隐私相关功能,所以检测不到需要弹窗的情况,可以在 app.json 中配置 "__usePrivacyCheck__": true 之后,接口才可以检测到是否需要弹窗。个人实际情况:我在开发者工具中配置了 "__usePrivacyCheck__": true ,needAuthorization 无论如何返回的都是 false,但在真机模拟的情况下可以返回 true自动打开隐私保护指引界面需在「小程序管理后台」配置《小程序用户隐私保护指引》,官方用户隐私保护指引填写说明。 取消授权: 微信中「微信下拉-最近-最近使用的小程序」中删除小程序可取消授权。 开发者工具中「清除模拟器缓存-清除授权数据」可取消授权。
2023-08-28 - 小程序因“米家客服中心”“九阳豆浆机”等虚假活动页面,涉及欺诈行为被处罚的经历分享
最近半年逛社区,发现有好多小程序因“米家客服中心”“九阳豆浆机”等虚假活动页面,导致小程序被处罚的情况。 [图片] [图片] 而大多数小程序开发者收到违规消息时候,也是一脸懵逼,这个页面压根不是我们小程序页面,怎么会这么显示?是不是有人恶意投诉?我们公司不搞这个活动,这是怎么回事? 前阵子我们小程序也出现了类似页面被小程序官方处罚,检查后原因是: 第三方通过webview 对我们的特定业务做了xss注入攻击,导致访问该网页会直接跳转到第三方虚假活动的网页,以至于小程序出现该虚假活动涉诈的页面。 但从受害者和官方看来这个虚假活动页面就是小程序自身有的,无法区分该页面是用户本身恶意违规,还是被利用。 也分享两点经验教训: 1.waf不一定能防护住xss攻击 一开始我们以为waf能防住他们的xss攻击,后来发现这个黑产团队很专业,他们的攻击绕过了我们的waf相关服务; 2.管控好小程序配置的业务域名,做好安全加固 过去为了方便,将老的容易被攻击的域名配置到小程序业务域名上,让那些网址可以通过webview打开。也因此导致了黑产通过这些业务利用我们小程序开展非法活动。 希望各位开发者能做好小程序安全加固,避免出现此类风险 也希望有其他大佬能一起在小程序社区分享些黑产对抗经验
2023-05-29 - 小程序搜索优化指南(SEO)
2019年上半年微信发布了基于小程序页面的搜索,为了让我们更好地发现及理解小程序的页面,结合过去一段时间来我们遇到的各种情况,我们强烈建议各位开发者花一些宝贵的时间认真阅读本文:) 爬虫访问小程序内页面时,会携带特定的 user-agent "mpcrawler" 及场景值:1129 1. 小程序里跳转的页面 (url) 可被直接打开。 小程序页面内的跳转url是我们爬虫发现页面的重要来源,且搜索引擎召回的结果页面 (url) 是必须能直接打开,不依赖上下文状态的。特别的:建议页面所需的参数都包含在url 2. 页面跳转优先采用navigator组件。 小程序提供了两种页面路由方式: a.navigator 组件 b. 路由 API,包括 navigateTo / redirectTo / switchTab / navigateBack / reLaunch 建议使用 navigator 组件,若不得不使用API,可在爬虫访问时屏蔽针对点击设置的时间锁或变量锁。 3.清晰简洁的页面参数。 结构清晰、简洁、参数有含义的 querystring 对抓取以及后续的分析都有很大帮助,但是将 JSON 数据作为参数的方式是比较糟糕的实现。 4. 必要的时候才请求用户进行授权、登录、绑定手机号等。 建议在必须的时候才要求用户授权(比如阅读文章可以匿名,而发表评论需要留名)。 5. 我们不收录 web-view 中的任何内容。 我们暂时做不到这一点,长期来看,我们可能也做不到。 6. 利用 sitemap 配置引导爬虫抓取,同时屏蔽无搜索价值的路径。 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html 7. 设置一个清晰的标题和页面缩略图。 页面标题和缩略图对于我们理解页面和提高曝光转化有重要的作用。 通过wx.setNavigationBarTitle或 自定义转发内容onShareAppMessage对页面的标题和缩略图设置,另外也为 video、audio 组件补齐 poster /poster-for-crawler属性。 8. 使用页面路径推送能力 可极大丰富微信可以收录的内容,进而提高小程序内容的曝光机会。请参考: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/search/search.submitPages.html
2020-01-14