1.将渲染阶段的开销转嫁到计算阶段之上
2.使用多个分层的canvas绘制复杂场景
3.避免频繁设置绘制上下文的font属性 如linewidth等,调整绘制顺序,linewidth一致的放在一起绘制.
因为设置linewidth,font,shadow,text,fillstyle这些属性花费的时间较多
4.不在动画中使用putImageData方法。这种操作导致性能下降
5.通过计算和判断,避免视野之外元素的绘制。
6.离屏绘制。将固定的内容预先绘制在离屏canvas上以提高性能。例如,将待绘制的内容先裁剪好,保存起来。
先将对象绘制在一个未插入页面的canvas中,然后每一帧使用这个canvas绘制。
7.使用worker和拆分任务的方法避免复杂算法阻塞动画运行。避免渲染一帧的时间超过16ms