NodeJSを読んで開発して感じがあります.

4478 ワード

byvoidのNodeJS開発を読んでから、一時的に手が痒くなりました.この文章を書いてみました.byvoidのnodeJSの試読章はNodeJSの歴史的由来だけを説明しました.現状は専門的な例がありません.ここで簡単な「ハローワールド」NodeJSの例を書きました.NodeJSの特徴を簡単に紹介します.
1 NodeJSとは何ですか
参照
       Node.js is a plotform built on Chrome's JavaScript runtime for ease ily building fast、scalable network appications.Node.js s event-driven、non-blocking I/O model that makes it it lightweighttle andarit
翻訳は以下の通りです  
参照
      Node.jsはプラットフォームで、chromeのjavaScriptの運行環境を内蔵しています.簡単に構築できます.
高速、伸縮性のあるネットワークアプリケーションプラットフォーム.Node.jsはイベントドライバを使用しています.つまり、I/Oモジュールは軽量で効率的で完璧なデータ集約型リアルタイムのアプリケーションサービスです.分散装置で動作できます.
2.NodejSの公式解釈から、Node.jsは以下の特徴が見られます.
1)シングルプロセスで、シングルスレッドモードで動作します.
2)時間駆動の仕組みです.
  Node.jsは、長い時間をかけて、ノードの単一スレッド大学のメンテナンスサイクルの行列によって実現され、マルチスレッドのリソース占有と文脈切り替えがない.
3)サポートされているプログラミング言語はJavaScriptです.
   ハロルドの例では、コールバック関数が匿名関数の形で実現されることが見られます.
var hostRequest = http.request(requestOptions,function(response) {
    var responseHTML ='';
    response.on('data', function (chunk) {
        responseHTML = responseHTML + chunk;
    });

    response.on('end',function(){
        console.log(responseHTML);
   });
});
開発環境設定:
     node-v 0.8.6-x 86.msiをインストールして、運転後dosで入力します.  node-versionは、設定が正常であれば、使用中のNodejsバージョンを示します.  
第一のnodejs例:ハロルド
   ターゲット:コンソールでハロルドを出力する
  ステップ:
    1ハロルド.jsファイルを作成し、以下の内容をファイルに保存します.
consolie.log(「ハローワールド、wangwu!」)
     2.node.jsを使ってjsファイルを実行する
     node hello world.js
第二の例:Node.Jsに基づくウェブアプリケーション
ターゲット:  お客様はブラウザを通じてウェブアプリケーションにアクセスできます.お客様はブラウザで入力します.http://127.0.0.1:8888を選択すると、歓迎ページが表示されます.
var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World,  ");
  response.end();
}).listen(8888);
     http.create Server(...)を呼び出すと、あるポートのサーバを待ち受けているだけでなく、サーバーが要求を受けたときに、どのように要求に応答して、クライアントにどのような内容を伝えるべきかを確認します.そして、このプロセスは同期ではなく、非同期である.要求はいつでも到着できるので、http.create Serverを使ってその作成方法に関数を伝達します.これはいつでも私達のサーバーが一つの要求を受け取っても、この転送された関数は呼び出されます.このように伝達される関数は予め定義された関数や匿名関数は重要ではありません.
    要求を受けたとき、レスポンス.writeHead関数を使って、一つのHttp状態が200とHTTPヘッダの内容タイプを送信して、resose.write関数を使ってHTTP本体にテキストを送信します.最後にレスポンス.endを呼び出します.
     最後にlistenメソッドを使ってサーバーに8888ポートを傍受させて、ユーザーはブラウザーの中で直接入力します.
http://127.0.0.1:8888歓迎ページ「ハローワールド」が見られます.
     ここでは、コールバック関数を使用して、この方法は、対応する時間があるときに、この関数を呼び出してコールバックします.
Node.jSは非ブロッキングモードを採用しています.http.create Server(...)を実行すると、この文は一つの列に入れられます.メインプロセスはその後、後のコードを実行します.例えば、jqueryの非同期要求、コードは以下の通りです.
function ajaxConfirmInputPay( callBackFun )
{
	jQuery.ajax({
            //  WebService  Post    
	    type : 'post',
            //  WebService          
	      url : '${ctx}/carInsure_confirmInput_ajax',
            //         ,    data: "{paraName:paraValue}"
	    data {name:'wangwu',age:'22',gender:'male’ },

            //  jquery ajax    webservice
            async: true,  
            //WebService    Json  
             dataType : 'json',
            //       
	     success : function(result){
                 callBackFun(result);
            },
		error : function(data, msg){
			alert("server not responding!");
		}
	});
}

function inputCallBackFun(data)
{
        if( data.flag == 'ok' ){
            //         ,      
            closeWindow();
	  }

} 

jQuery(document).ready(function() {
         doOperateBeforeAjax ();	

         ajaxConfirmInputPay(inputCallBackFun);

         /**
          *      ajaxConfirmInputPay()     ,    
          *  doperateAfterAjax() 
          */
          doOperateAfterAjax();

});
          正常な場合は、ページ初期化時にコードは1文目で実行された後、2文目が実行されます.第二文を実行した後、第三文の順序で実行しますが、第二句のajaxConfirmInputPayは資源を非常に消費するために時間がかかります.全体のプロセスはこの文に止まっています.
     このような場合は渋滞モードであり、ajaxの異ステップを使って性能を改善することを提案します.第二句ajaxConfirmInputPay()に運行して渋滞が発生した場合、ajaxConfirm InputPay()の完成を待つのではなく、doOperatAfterAjax(方法)を実行し続けます.これは非ブロッキングモードです.つまり、一つのコールバック関数inputCallBackFunを追加して、パラメータとしてdoOperate After Ajax方法に導入します.