javascript中的同时代码?

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

如果我刚才做了:

var up = 1;
while(true){
    document.write(up);
    up++;
    if(up==11)
        up=1;
}
var down = 10;
while(true){
    document.write(down);
    down--;
    if(down==0)
        down=10;
}

……它会继续数数……

解决方法

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

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

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

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

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

var cntr1 = 1;
var cntr2 = 2;

setInterval(function() {
    document.getElementById("time1").innerHTML = cntr1 += 13;
},33);

setInterval(function() {
    document.getElementById("time2").innerHTML = cntr2 += 5;
},44);

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

猜你在找的JavaScript相关文章