1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > HTML5的canvas绘制动态时钟 1秒刷新一次canvas 个人觉得有性能的问题 如果不这么做

HTML5的canvas绘制动态时钟 1秒刷新一次canvas 个人觉得有性能的问题 如果不这么做

时间:2021-11-04 07:03:34

相关推荐

HTML5的canvas绘制动态时钟 1秒刷新一次canvas 个人觉得有性能的问题 如果不这么做

web前端|H5教程

web前端-H5教程

回复内容:

个人觉得没有性能的问题

在线算命php源码,添加Ubuntu的引导,tomcat中运行程序,amazon 爬虫软件,网页拒绝访问php,seo软件推广seo教程lzw

不会有任何性能问题,要理解canvas是比较底层的API,它需要手工去做一些底层的工作,让canvas里的东西动起来就需要不停的重绘,刚接触canvas的人会容易产生这样的误解,觉得这样会有性能问题

企业html网页源码下载,Ubuntu 检查硬件驱动,tomcat启动45秒限制,爬虫网页展开,dw自带PHP引擎吗,乐云seo夺高粱seo知心lzw

传统的DOM动画并不是没有这个重绘过程的,想要DOM元素动起来,一样需要经历重排版和重渲染,只不过这些浏览器的排版引擎在底层已经自动替你完成了,实际上浏览器重构整个渲染树的开销是非常非常巨大的,这也是造成DOM动画性能低下的原因,在canvas里可以让里面的数千个图形不断运动,依然保持流畅,而如果一个页面中有数十个DOM一起运动就已经开始卡了

外挂海模块源码,vscode怎么切换,旧手机上安装ubuntu,Tomcat存放web,sqlite查询 数组存放,茉莉机器人运行插件,前端三大框架比例,爬虫破解邮箱密码,php的单元测试,上海企业seo外包服务,小米云相册网站模板,网页收藏 代码,小说网站代码免费模板,骑士人才后台页面,出租车管理系统,如何下载微信收款商业版小程序lzw

不会吧,许多HTML5游戏引擎都是冲着60fps去的,做个打飞机之类的游戏也完全没有压力,时钟这种东西就更不至于造成性能问题了,更何况你是1fps。先做个实验试试吧。

一秒刷新都有性能问题的机器就别跑什么HTML5了。

对于CANVAS绘制性能提高问题,可以考虑使用“双缓冲”技巧。

CANVAS图像传统绘制是这个样子的:

(1)在可见画布上画出一个圆。

(2)在可见画布上画出一个三角。

(3)在可见画布上画出一个方块。

“双缓冲”技巧则是这个样子:

(1)在非可见画布上画出一个圆。

(2)在非可见画布上画出一个三角。

(3)在非可见画布上画出一个方块。

(4)将非可见画布上的内容一次性画到可见画布上。

也就是说,在浏览器上,使用双缓冲技术进行canvas对象的绘制只会对浏览器进行一次渲染。就理论而言,在需要绘制的东西非常多的时候,双缓冲技术可以有效减少页面闪烁次数。

之前做过实验,在canvas画布中有若干个圆做无规则碰撞运动,设定两个对照组,一个用传统方法绘制圆,另一个则是使用双缓冲技巧。以下是实验记录:

第一次对比:

两组都是900个圆在CANVAS中进行无规则运动并相互碰撞,两组都运行流畅

第二次对比:

两组都是1100个圆在CANVAS中进行无规则运动并相互碰撞,两组都运行流畅

第四次对比:

两组都是2100个圆在CANVAS中进行无规则运动并相互碰撞,两组都开始出现掉帧现象

第五次对比:

两组都是2500个圆在CANVAS中进行无规则运动并相互碰撞,两组都有较为明显的卡顿现象,仍然没有明显的性能差别

第六次对比:

两组都是3000个圆在CANVAS中进行无规则运动并相互碰撞,两组都卡顿,仍然没有明显的性能差别

第七次对比:

两组都是3500个圆在CANVAS中进行无规则运动并相互碰撞,两组都很卡顿,仍然没有明显的性能差别

当时的出的结论是:双缓冲技巧对于HTML5 CANVAS性能提升效果并不明显。

现在想来,其实还有一种可能:浏览器把性能都用在计算那几千个撞来撞去的圆的速度、角度变化上去了,而“大量绘制图像”的实验目的并没有得到体现。

另外,所谓“卡顿程度”在当时是使用肉眼判断的,这又是另一个不严谨之处。

此技巧并不复杂,我想题主还是可以一试的。

HTML5的canvas绘制动态时钟 1秒刷新一次canvas 个人觉得有性能的问题 如果不这么做的话 有什么好办法?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。