龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

JS实现模拟多线程,本文使用到js的闭包特性(3)

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
呵呵,知道这个方法后,就对原来的代码改写一遍。 代码如下:见 index3.html !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" HTML HEAD TITLE 实例3 /TITLE META NA

         呵呵,知道这个方法后,就对原来的代码改写一遍。

         代码如下:见index3.html   

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> 实例3 </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>

 <BODY>
 
    <SCRIPT LANGUAGE="JavaScript">
    <!--

        function Node(id,name,cn){
            this.id = id;
            this.name = name;
            this.cn = cn;
        }
        var nodes = new Array();
        nodes[0] = new Node(1,"node1","节点1");
        nodes[1] = new Node(2,"node2","节点2");
       
        var nodeConfig = {};
        nodeConfig.ticks = 4 * 1000;    //刷新频率
        nodeConfig.msg = "运行中";


        function showStatus(node){
            alert(node.name + ":"  + nodeConfig.msg);
        }       

        function startup(){
                    var len = nodes.length;
                for(var i = 0; i < len; i++){
                var f = function(idx){                                                       
                setInterval(function(){ showStatus(nodes[idx])},nodeConfig.ticks);                               
            }
                f(i);       
            }
        }

        startup();


    //-->
    </SCRIPT>

 </BODY>
</HTML>

         此次程序终于按最初的想法运行了。并且以后随着节点的增加,不会像代码2那样Copy一堆函数了,只需要在数组里面增加一个节点就可以。

         为了更OO一点,又对程序重构了一番。

         代码如下:见index4.html
 

精彩图集

赞助商链接