小程序Canvas性能优化实战
以下内容转载自totoro的文章《小程序Canvas性能优化实战!》 作者:totoro 链接: https://blog.totoroxiao.com/canvas-perf-mini/ 来源: https://blog.totoroxiao.com/ 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 腾讯位置服务基于微信提供的小程序插件能力,专注于(围绕)地图功能,打造一系列小程序插件,可以帮助开发者简单、快速的构建小程序,是您实现地图功能的最佳伙伴。目前微信小程序插件提供 路线规划、地铁图、地图选点 等服务! 案例背景 需求: 在小程序中使用canvas组件绘制地铁图,地铁图包括地铁线路、站点图标、线及站点名称文字,绘制元素为线、圆、图片、文字。 支持拖动平移和双指缩放。 问题: 小程序中的canvas性能有限,特别在交互的过程中不断触发重绘会引发严重卡顿。 基本实现 在不考虑优化的情况下,先说说如何实现绘制和交互。 数据格式 首先看看数据,服务返回的数据中每个元素都是独立的,包括该元素的样式及坐标 // 线路数据 lineData = { path: [x0, y0, x1, y1, ...], strokeColor, strokeWidth } // 站点数据:分为普通站点和换乘站点 // 普通站点绘制简单圆形 stationData = { x,