let canvasCtx = uni.createCanvasContext(this.canvasId, this);
canvasCtx.drawImage(img,sx,sy,swidth,sheight,dx,dy,dwidth,dheight);

- 发布:2022-08-17 22:07
- 更新:2022-08-17 22:07
- 阅读:990
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 11 21H2(22000.856)
HBuilderX类型: 正式
HBuilderX版本号: 3.4.14
浏览器平台: Chrome
浏览器版本: 104.0.5112.81
项目创建方式: HBuilderX
示例代码:
操作步骤:
页面长时间运行,浏览器OOM
页面长时间运行,浏览器OOM
预期结果:
页面长时间运行,浏览器不要OOM
页面长时间运行,浏览器不要OOM
实际结果:
页面长时间运行,浏览器OOM
页面长时间运行,浏览器OOM
bug描述:
页面使用Websocket连接后台,后台会连续发送大量图片到前端页面,前端需要将图片进行展示,时长长后浏览器OOM
使用chrome调试工具,查看内存,有大量的string类型变量,且指向_images变量,经排查,发现是与uni-app/src/core/view/components/canvas/index.vue 有关。如果页面由一个canvas组件实例并且没有销毁的情况下,_images变量一直往里边插入新的对象,而没有释放,造成大量内存占用且无法释放。
