小程序canvas画画板签字版,touchmove时卡顿的问题(根本原因是因为vue语法中page.data导致视图层和逻辑层的频繁通讯导致)

news/2024/7/20 2:09:22 标签: vue.js, 小程序, 前端, canvas

起因

因为要做一个画画板的功能,所以使用了canvas组件,一开始好多人说小程序canvas性能特别差,也没太注意,做出来之后确实有点卡,而且每一笔touchmove时间越长越卡,最终导致页面卡到无法使用。

开始找原因

canvas_3">canvas优化

第一步肯定是先找一下canvas的问题,网上搜到一些材料优化canvas的思路,无非就是以下几种,详细的可以参考我的另一个文章

  1. 绘制的图形的数量和大小会影响canvas的性能, 减少绘制物,减少绘制指令
  2. 图形数量过多,但是只刷新部分 可以使用局部渲染
  3. 逻辑层和背景图层分离 可以使用分层渲染
  4. 某些长时间的逻辑影响主线程的, 可以使用离屏渲染 和webworker 来解决问题

这里做了两个优化:

  1. 禁用滚动,一开始一直卡的不行,后来查资料发现滚动跟touchmove事件有冲突,禁用之后好了许多
  2. 将ctx.stroke()指令放到定时器中执行,每50ms执行一次,这样就是一个固定频率执行,不会因为频繁触发touchmove导致ctx.stroke()一秒钟执行几百几千次

经过处理,这些已经好了很多,但是当绘画事件变长时还是会变得越来越卡,直到最后卡的,动不了,延迟十几秒那种,所以继续找问题


http://www.niftyadmin.cn/n/3897.html

相关文章

Mycat原理详解,Mycat 实现 MySQL 的读写分离(Mysql主从复制)

1 Mycat 介绍 在整个IT系统架构中,数据库是非常重要,通常又是访问压力较大的一个服务,除了在程序开发的本身做优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等…

SpringMvc(二)HandlesTypes源码

文章目录前言HandlesTypes,初始化servlet容器参数步骤3内容步骤4内容前言 本篇只是探究HandlesTypes这个注解的作用 HandlesTypes,初始化servlet容器参数 位置:org.apache.catalina.startup.ContextConfig#webConfig 首先我们要知道注解H…

腾讯云轻量应用服务器和云服务器有什么区别?该如何选择?

腾讯云于2020年7月13日正式开始轻量应用服务器的公测,吸引了众多个人开发者甚至是中小企业前来体验及使用,用户反响非常热烈。相较于其明星产品云服务器来说,大家对轻量应用服务器非常陌生,甚至对它的用处都不是很了解&#xff0c…

2022 国赛postgresql

安装postgresql配置postgresql [root@linux3 ~]# postgresql-setup --initdb //初始化数据库Initializing database in ‘/var/lib/pgsql/data’Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log[root@linux3 ~]# systemctl enable postgresql.service Created …

【简易 教程:Pytorch 配置 GPU版本】

Pytorch 配置 GPU 版本 博主 是 通过 Anaconda 来管理配置Python工具包的。至于Anaconda 的下载安装,比较简单,在其官网下载,基本就是一步接着一步就好~ 这里我不记录咯 ~如果大家有需求的话,留言就好 ~ ------>>首先&…

LeetCode第32题-最长有效括号-java实现-图解思路与手撕代码

LeetCode第32题-最长有效括号-java实现-图解思路与手撕代码 文章目录一、题目描述二、解题思路与代码实现1.解题思路2.代码实现总结一、题目描述 给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 二…

目标检测(6)—— YOLO系列V2

一、YOLOV2改进的概述 做的改进如下图: Batch Normalization 批量归一化层 不加BN层,网络可能学偏,加上归一化进行限制。 从今天来看,conv后加BN是标配。 更大的分辨率 V1训练的时候使用224224,测试用448448。 V2训…

目标检测(5)—— YOLO系列V1

一、YOLO系列V1 经典的one-stage方法,You Only Look Once将检测问题转化成回归问题,一个CNN搞定可以对视频进行实时监测 YOLO系列的速度更快,我们检测的物体很简单,进行取舍,舍弃了一些精度。 V1核心思想 现在要预测…