2014年1月9日木曜日

JavaScriptでイベントループを作る。

JavaScriptのイベントコールバック関数って適当に書くと、コードが増えてくると、どんどんぐちゃぐちゃになっていきます。

イベントループを作って処理すると誰でも簡単に読みやすいコードがかけるんじゃないかと思い、ためしに作ってみました。



---------

function print(str)
{
    $("#body").append(str+"<br/>");
}


var event_no=0;
function oninit()
{
    $("#body").append("<div id=\"tokucyo1\">イベント1</div>");
    $("#tokucyo1").click(function(){event_no=1;});
    $("#body").append("<div id=\"tokucyo2\">イベント2</div>");
    $("#tokucyo2").click(function(){event_no=2;});
    $("#body").append("<div id=\"tokucyo3\">イベント3</div>");
    $("#tokucyo3").click(function(){event_no=3;});
    return 0;
}

function func1()
{
    print("event1");
    return 0;
}

function func2()
{
    print("event2");
    return 0;
}

function func3()
{
    print("event3");
}


function main()
{
    var en=0;

    //oninit();
    //while(1){
        en=event_no;
        event_no=0;
        //if(en==-1)break;
        switch(en){
        case 1:
            func1();
            break;
        case 2:
            func2();
            break;
        case 3:
            func3();
            break;
        }
        //mysleep(100);
       setTimeout(main,100);
    //}
}
//main=Concurrent.Thread.compile(main);

$(function(){
    oninit();
    //Concurrent.Thread.create(main);
    main();
});


0 件のコメント:

コメントを投稿