- 小程序底层对网络请求做了什么优化吗?
最近对比了一下H5的请求和小程序的请求耗时, 同一个API, 小程序请求耗时会少300ms左右, 后端同学打点反馈并没有这么大的差异. 且同一个页面上的其他请求耗时也有类似的情况, 都会比H5耗时少很多. 目前能观测到的仅仅是小程序没有携带cookie, 其他区别未知... 所以想了解下, 小程序底层对请求这块做了什么优化吗? 有没有什么文章可以分享一下的, 感谢~
2021-04-12 - Recycle-View回滚过程中为何会出现闪动?
recycle-view向下滚动过程中, 触发的滚动事件返回的scrollTop持续增加, 表现正确. 回滚过程中, 触发的滚动事件返回的scrollTop在持续减少一段时间后, 会出现抖动, 如下图: [图片] recycle-view的高度和给定的每个Item高度*个数的总和一致. 71*105 = 7455 [图片] [图片] 看现象跟https://developers.weixin.qq.com/community/develop/doc/000cc449bc419864829add7a956400?highLine=recycle-view 描述的一致. 长列表的数据为一次性写入71条, 且中途没有过增删过程, 直接滚动即可复现问题. 另外, 看recycle-view的背后实际是scroll-view, 怎么可以在scroll-view里断点, 看是否返回的top值正确?
2021-04-04 - 如何实现Component多实例?
有以下场景: 组件A1 -> 跳转组件A2 -> 跳转组件A3 理论上希望A3展示的时候, 能保持A1, A2的状态不变. 这样在销毁A3时, A2能展示跳转A3前的状态. H5下, 可以new多个实例来实现. 那么小程序里有什么解决办法? ps. 现在唯一能想到的思路是自己维护组件快照, 把状态维护成一个队列. 但是问题是, 比如组件有一些dom操作怎么保存等等...
2021-02-23 - canvas2d图片源后缀有其他东西时, 图片无法正确onload且没有onerror信息
canvas2d绘制图片的时候 const _image = xxx.createImage() _image.src = url _image.onload = () => {} _image.onerror = (error) => {} 此时如果url中的链接为: https://xxxxxxx.jpg***** 时, onload失败且onerror没有任何错误信息, 但是Image对象可以成功创建 [图片] 一旦去掉url后缀jpg后的*****时, onload可以正常执行
2020-07-03 - 当节点循环存在三元运算时, last-child未生效
[图片] 如图, 代码中类名赋值时存在三元运算, DOM节点渲染没问题. wxss中定义如下样式: [图片] 期望结果: 最后一个text-color类拥有 color:red 属性 实际结果: 并没有... ...
2018-08-13 - canvas以组件形式提供服务, 无法绘图
你想反馈一个 Bug 还是 提一个需求? Bug 如果是 Bug: * Bug 表现是什么?预期表现是什么? 表现: canvas以组件形式提供服务时, 无法绘制, 且保存到本地的图片内容为空. 预期: 正常绘制 * 如何复现? canvas components: <canvas canvas-id="myCanvas" class="myCanvas" style="width: {{width}}; height: {{height}}"/> 调用组件的页面: <view class="my-canvas"> <my-canvas picArray="{{picArray}}"/> <button class="drawCanvas" ontap="drawCanvas">绘制button> view> 组件draw方法: _drawText: function() { let ctx = wx.createCanvasContext('myCanvas') const textArray = this.data.txtArray textArray.forEach(element => { try { ctx.setFillStyle(element.color || '#F5F5F5') ctx.setFontSize(element.size || 20) ctx.fillText(element.text, element.x, element.y) } catch (e) { console.log('drawText error!') } }) ctx.draw && ctx.draw(true, function(e) { console.log('done') }) }, 组件调用方法: [代码][代码]drawCanvas: function() { this.setData({ txtArray: [{ color: 'red', size: 20, text: 'hello', x: 0, y: 0 }, { color: 'green', size: 40, text: 'world', x: 100, y: 0 }] }) } [代码][代码] 实现思路: 通过页面变更txtArray值, 让canvas组件监听properties变化, 以此来调用_drawText方法. 结果: [图片] 图中可见: 当前ctx的action有值, 并且对应为我传入的textArray中的设置颜色, 字体大小, 文字 当前canvasId有值, 对应到页面下的组件里的canvas-Id 当前webviewId为0 ctx.draw()可以进入完成回调, 但是console里并没有出现'done' 补充一下: 如果在页面端初始化ctx后传入到component里, ctx.setFillStyle等方法都是undefined... 麻烦官方帮忙看下问题, 谢谢. 请教下各位, 可能是什么原因导致的? 谢谢.
2018-03-07