【小程序踩坑系列2】 vConsole 将已清除掉的log记录再次打印出来,造成代码没有生效或者微信扫码错误的错觉...

作者: 蒋欢

这是一个开发工具 vConole 带来的问题。虽然不大,但是如果你早已习惯 chrome 开发面板的使用方法,则很容易在开发中导致误解。

问题:vConsole 打开后点击 clear 清除log,再次操作小程序。发现会将之前清除掉的log再次打印出来,然后才打印新的log,造成代码没有生效的错觉。

1、首先,解释下什么是 vConole
vConsole 是腾讯开发的一个轻量、可拓展、针对手机网页的前端开发者调试面板, 具体介绍见请:vConsole官方仓库

2、小程序里的 vConole 工具
微信小程序在开发过程中也可以使用 vConole 辅助在手机端进行调试,具体方法是:点击开发版小程序又上角 ... ,之后选择 打开调试 ,如下图所示。

3、在使用小程序开发工具中,由于 log 记录过多,我们在一次调试过程中可能会使用 clear 来清除log,事实上 clear 没有像 chrome 的 “clear console” 一样,做到真正的清除 log。而是将 log 清除后缓存了起来。待你下次刷新页面时会将两次 log 一起打印出来。我们在调试 “小程序扫码bug” 时就遇到了该问题。

举例:

a、我们调试时,会在 onload 内将该函数参数打出,读取微信扫码的数据。

    onLoad(this: IndexPage, p) {  
        console.log('打印p参数打印p参数打印p参数打印p参数打印p参数打印p参数');  
        console.log(p);  
    }
复制代码

b、当我们第一次扫码调试时,针对商户 “巴蜀传香” 打出的log结果如图所示,之后我们点击 clear 清除了调试工具的 log 记录并退出。

c、当我们第二次扫不同的二维码进入小程序时,预期onload的参数会变化。然而发现店铺变了,但扫描的结果没有改变(实际上二维码变了,店铺与log也应该会改变)。

d、事实上,当你将 log 记录继续往下滑会发现,新的 log 记录也已打印出来。说明即使你之前点击了 clear ,新的 log 也会因为缓存再次打印出来。

环境:

IOS 和 安卓 均可稳定复现。

原因:

vConsole 会将已经 “clear” 的缓存再次打印出来。

微信反馈:“这是小程序底层的一个问题,正在修复中,不是vConsole的问题哈。”

解决方案:

调试的时候需要多往后翻一下,找到各次对应的扫码 log 记录。

风险:

开发阶段,可能因为 log 判断错误,而造成误解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值