`

讨论一个关于js,canvas,setTimeout的问题.

阅读更多
想和大家讨论一个关于js,canvas,setTimeout的问题.

看一段伪代码:

function mainLoop(){
  
   updateLogic();  //该方法进行逻辑运算,处理要绘制的"图形"的坐标大小等.
   drawCanvas(); //该方法在一个canvas上绘制出"图形".
   
   setTimeout( mainLoop, 30); //30毫秒后 重复以上动作.
}

setTimeout( mainLoop, 30);



这段代码很好理解 ,每30毫秒更新一下图形的状态 并绘制.
它也是很多游戏或者是动画程序的主干.

网上看到有人提出一种优化方案.
方案中建议 将此代码中的
updateLogic  和 drawCanvas 分别放到两个 setTimeout里去执行 ,
说这样能够优化程序的性能, 使其能够得到更高的FPS(每秒钟显示的帧数).

我觉得这种优化的效果 微乎其微 甚至到底会不会起到真正的优化 我个人也持怀疑态度.

各位爱好js的同学们 大家一起讨论一下

你们是怎么看的?

补充: 大家在讨论时 要注意一下 canvas对象的特殊性(可以简单参考一下这里. 如果把drawCanvas换成普通的运算函数 这个问题就没啥可讨论的了.
分享到:
评论

相关推荐

    js特效打雷闪电效果

    首先,`js打雷闪电效果.htm`文件是一个HTML文件,其中包含了JavaScript代码来创建打雷闪电效果。HTML文件通常包含结构化的文本和元素,而JavaScript代码则嵌入到HTML中,通过`<script>`标签引入。在HTML5中,可以将...

    vue+chart.js 整合 绘制折线图

    在组件的模板部分,我们需要一个canvas元素来承载Chart.js的图表: ```html <canvas ref="chart"></canvas> ``` 接下来,在组件的脚本部分,我们导入Chart.js并定义数据和配置: ```javascript import { ...

    纯JS代码实现的贪吃蛇小游戏

    在本项目中,我们讨论的是一个使用纯JavaScript(JS)编写的贪吃蛇小游戏。JavaScript是一种广泛用于网页和网络应用的编程语言,尤其在前端开发领域有着不可或缺的地位。这个小游戏的实现完全依赖于JS,无需其他框架...

    js编写贪吃蛇游戏(完整无错可运行源码)

    在本项目中,我们讨论的是一个使用JavaScript编写的经典游戏——贪吃蛇。JavaScript是一种广泛应用于Web开发的脚本语言,它可以实现丰富的交互效果和功能,包括创建动态游戏。在这个"js编写贪吃蛇游戏(完整无错可...

    JavaScript效果.rar

    这个名为"JavaScript效果.rar"的压缩包文件很可能包含了多个JavaScript代码示例或者小型项目,旨在展示JavaScript的各种视觉效果和交互功能。下面将详细讨论JavaScript在网页开发中的关键知识点及其应用。 1. **DOM...

    js动画 一针一针显示

    例如,我们可以设置一个定时器每毫秒更新一次指针的位置,从而达到平滑的动画效果。 ```javascript function rotateClockwise() { // 更新指针角度代码 // ... setTimeout(rotateClockwise, 10); // 每10毫秒...

    JavaScript实例大全

    这个"JavaScript实例大全"压缩包里的300个实例可能涵盖了以上提到的所有知识点,每个实例都是一个具体的应用场景,通过实际操作和调试,可以深入理解和掌握JavaScript的核心概念。同时,小游戏的代码可以提供实践...

    javascript图片处理

    本文将深入探讨JavaScript如何进行图片处理,结合提供的文件名,我们将讨论图片的缩放(Resize)、裁剪(ImgCropper)、拖拽(Drag)以及淡入淡出效果(Fade)这四个核心知识点。 1. **图片缩放(Resize)** 在...

    重新整理过的10个用JavaScript实现的图片特效

    接下来,我们将详细讨论这些特效及其背后的JavaScript原理。 1. **图片轮播(Image Carousel)**:这是一种常见的图片展示方式,通过JavaScript自动或手动切换图片,通常伴有过渡动画。实现方法包括使用CSS3动画、...

    javascript经典特效---可爱的活动小人.rar

    在本案例中,“可爱的活动小人”是一个基于JavaScript实现的动态特效,它可能包括动画、用户交互等元素,旨在增强网页的用户体验和视觉吸引力。 在JavaScript中,实现活动小人的动画效果通常涉及到以下几个关键知识...

    JavaScript版赛车游戏源码

    JavaScript版的赛车游戏源码提供了一个独特的机会,让我们深入了解如何使用这门强大的脚本语言来构建互动性十足的游戏。这个游戏不仅娱乐性强,还为开发者提供了丰富的学习资源,无论是初学者还是经验丰富的程序员,...

    HTML5 canvas粒子漩涡动画代码

    在JavaScript中,`document.createElement('canvas')`可以创建一个Canvas元素,而`canvas.getContext('2d')`则获取用于绘图的2D渲染上下文。 粒子系统是一种常用的计算机图形技术,用于模拟大量独立或相互作用的...

    html5 canvas圆形计时器特效特效代码

    Canvas是一个二维绘图上下文,通过JavaScript API来操作。它提供了各种绘图方法,如绘制线条、形状、图像等,使得动态和交互式的图形创建成为可能。在HTML5中, `<canvas>` 元素就像一个画布,我们可以在这个画布上...

    HTML5 Canvas微信运动步数折线图特效代码

    在这个特定的案例中,我们讨论的是如何使用Canvas来制作一个模拟微信运动步数的折线图特效代码。这个效果是基于jQuery 2.1.1.min.js库实现的,jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理和Ajax...

    2022跨年烟花源码_js

    标题中的“2022跨年烟花源码_js”指的是一个使用JavaScript编写的跨年烟花效果的源代码。JavaScript是一种广泛应用于网页和网络应用的编程语言,尤其在动态交互效果方面有着显著作用。这个项目可能是为了庆祝新年,...

    HTML5 canvas按钮粒子动画效果特效代码

    接着,定义一个函数用于在canvas上绘制粒子,这个函数可能会包括粒子的位置、大小、颜色、速度和方向等属性。粒子的位置可以通过重力、随机或者用户输入(点击位置)来确定。通过定时器(如`requestAnimationFrame`...

    画点动画的时钟javascript脚本

    在这个场景中,我们讨论的是一个利用JavaScript实现的“画点动画的时钟”。这个脚本通过JavaScript的定时器功能(如`setInterval`或`setTimeout`)以及DOM操作,来动态地在页面上绘制出一个时钟,并通过动画效果展示...

    HTML5+JavaScript动画基础 源码

    4. **CSS3动画**:虽然主要讨论JavaScript动画,但CSS3的`@keyframes`规则也提供了一种声明式创建动画的方法,可以与JavaScript结合使用。 5. **事件处理**:通过监听用户交互,如`click`、`mousemove`等,来触发或...

    JavaScript 实现 俄罗斯方块

    JavaScript实现俄罗斯方块是一个经典的游戏开发案例,它涵盖了前端编程中的多个重要概念和技术。在这个项目中,我们将讨论以下几个核心知识点: 1. **HTML布局**:`Javascript.html` 文件是游戏的用户界面,通常会...

    代码烟花秀__全部源代码以及源文件.rar

    Canvas是一个二维绘图API,允许开发者直接在网页上绘制图形。在烟花秀中,开发者会利用Canvas的drawImage、fillStyle、beginPath、moveTo、lineTo等方法绘制烟花,并通过clearRect清除旧的图像,以实现动态更新的...

Global site tag (gtag.js) - Google Analytics