javascript中的同时代码?

前端之家收集整理的这篇文章主要介绍了javascript中的同时代码?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何同时运行两个单独的功能?如果我想要两个时钟,一个计数,另一个计数,我希望它们同时运行,我该怎么做?

如果我刚才做了:

  1. var up = 1;
  2. while(true){
  3. document.write(up);
  4. up++;
  5. if(up==11)
  6. up=1;
  7. }
  8. var down = 10;
  9. while(true){
  10. document.write(down);
  11. down--;
  12. if(down==0)
  13. down=10;
  14. }

……它会继续数数……

解决方法

Javascript是单线程的.只有一个线程可以访问该页面.

在某些HTML5浏览器中,可以使用Web Workers在另一个线程中执行某些代码,然后通过消息传递与主线程进行通信,但Web Worker线程无法以任何方式访问DOM.

如果您希望计数器在循环中运行,那么典型的方法是使用计时器,然后在每次计时器运行时设置DOM中对象的内容.通过这种方式,您可以看到同时运行多个事物,但实际上,它们仍然是一次一个,只是单独计时.

这是两个“出现”同时运行的计数器的示例:http://jsfiddle.net/jfriend00/3yc9r/.

这个代码就是这个(在页面加载后运行):

  1. var cntr1 = 1;
  2. var cntr2 = 2;
  3.  
  4. setInterval(function() {
  5. document.getElementById("time1").innerHTML = cntr1 += 13;
  6. },33);
  7.  
  8. setInterval(function() {
  9. document.getElementById("time2").innerHTML = cntr2 += 5;
  10. },44);

另外,你真的不想在循环中做document.write().将运行一段时间的代码应该在页面加载后运行,并且应该直接修改DOM中的对象而不是使用document.write().

猜你在找的JavaScript相关文章