想和大家讨论一个关于js,canvas,setTimeout的问题.
看一段伪代码:
function mainLoop(){
updateLogic(); //该方法进行逻辑运算,处理要绘制的"图形"的坐标大小等.
drawCanvas(); //该方法在一个canvas上绘制出"图形".
setTimeout( mainLoop, 30); //30毫秒后 重复以上动作.
}
setTimeout( mainLoop, 30);
这段代码很好理解 ,每30毫秒更新一下图形的状态 并绘制.
它也是很多游戏或者是动画程序的主干.
网上看到有人提出一种优化方案.
方案中建议 将此代码中的
updateLogic 和 drawCanvas 分别放到两个 setTimeout里去执行 ,
说这样能够优化程序的性能, 使其能够得到更高的FPS(每秒钟显示的帧数).
我觉得这种优化的效果 微乎其微 甚至到底会不会起到真正的优化 我个人也持怀疑态度.
各位爱好js的同学们 大家一起讨论一下
你们是怎么看的?
补充: 大家在讨论时 要注意一下 canvas对象的特殊性(可以简单参考一下
这里. 如果把drawCanvas换成普通的运算函数 这个问题就没啥可讨论的了.
分享到:
相关推荐
canvas.text.js
Web开发canvas2image.js将canvas保存为图片,下载图片。
html2canvas.min.js的源码,方便大家下载
flashcanvas.min.js flashcanvas.min.js flashcanvas.min.js flashcanvas.min.js
jsPdf.debug.js和html2canvas.js下载jsPdf.debug.js和html2canvas.js下载jsPdf.debug.js和html2canvas.js下载jsPdf.debug.js和html2canvas.js下载
html2canvas 页面元素转canvas转图片 fileSaver 文件下载 jszip 文件压缩
canvas-nest.js一个基于html5 canvas绘制的网页背景效果
canvas2image.js
该资源有demo 亲测可用 并且兼容IE 目前所测试浏览器就是 谷歌和IE
canvas2image.js 将canvas转化为image的js插件,可以将画布内容下载实现截图功能。Web开发canvas2image.js将canvas保存为图片,下载图片
html2canvas.js 和html2canvas.min.js 以及应用示例
使用html2canvas将指定element转成图片,可广泛用于生成宣传海报图,javascript使用方式支持基础js文件
CanvasLayer.js