canvas双缓冲技术 Posted on
这里的canvas其实已经不仅仅用于HTML5了,在安卓上也有双缓冲技术,所以这里标题只起canvas的双缓冲技术。
双缓冲技术,其实针对的是在画布画图时多次刷新的优化。
比如:
1.画一个圆
2.画一个方块
3.画一个三角
这样每画一次都会刷新画布。
双缓冲技术说的是,在画到可见画布之前先在一块不可见的画布上画上,然后一次性画到可见画布上。
如果用双缓冲技术就会先把上面的圆,方块,和三角先分别画到一块不可见画布上,最后一次性画到可见画布上,避免可见画布的多次刷新。
其实在HTML5里,不用自己去实现一套双缓冲技术了,看如下代码:
function a(){ for (var i=0;i<10;i++){ // 在canvas上画一些东西 } }
当执行函数a时, 虽然对canvas执行了10次的绘图操作,但是并不会刷新和渲染可见画布,而只有当函数执行完成后 才会一次性的刷新并渲染出canvas上的东西.
(当然 如果你使用了setTimeout那就另当别论了) [REF]
安卓版双缓冲技术 [Android 的 SurfaceView 双缓冲应用]