代码之家  ›  专栏  ›  技术社区  ›  resopollution

了解JavaScript计时器线程问题

  •  7
  • resopollution  · 技术社区  · 15 年前

    我开始在一个javascript的MMORPG,实际上会顺利工作。目前,我创建了一个演示,以证明我可以移动角色,让他们互相聊天,以及看到对方移动现场。

    http://set.rentfox.net/

    现在我还没有广泛使用Javascript计时器,但据我所知,如果我错了,请纠正我,多个setinterval同时发生并不能很好地工作b/c它都在一个线程上。

    2 回复  |  直到 5 年前
        1
  •  11
  •   T.J. Crowder    15 年前

    多个问题 setInterval Worker threads 不过,他们会来的;火狐 already has them 第二个是计时器以设定的时间间隔运行,但是如果处理程序在该时间间隔过期时仍在运行,则第二个时间间隔将被完全跳过。例如,计时器会干扰自身。

    setTimeout 为了这种事。当我的处理程序被触发时,我执行我的工作,然后在处理程序的末尾安排下一个事件。然后(在你所说的范围内) 可以

    对于你正在做的事情,似乎一个“脉冲”计时器是最好的,通过它的工作需要做的任何脉冲。脉冲计时器是否使用 设置间隔 是一个基于实际代码的判断调用。

        2
  •  3
  •   Delan Azabani    15 年前

    +1至T。J。克劳德,答案很完美。我强烈建议学习在游戏动画中使用Canvas-over-DOM节点;后者速度慢且有缺陷,在任何不常见的情况下都会挂起浏览器。OTOH,Canvas速度更快,而且可以硬件加速,如果需要的话,它甚至还有一个3D环境。