2008-09-04 11 views
2

多くのオンラインチュートリアルで、Ajaxのソースコードの例を見てきました。私が知りたいのは、サンプルのソースコードを使用するかどうかは、まったく問題ないかどうかです。Ajaxコードはどの程度洗練されていますか?

実際のアプリケーションに適用されるコードには、これ以上追加するものはありますか?

アプリケーションをより堅牢で安全にするために必要なすべての手順はありますか?ここで

は、私がウェブから得たサンプルソースコードです:

function getChats() { 
    xmlHttp=GetXmlHttpObject(); 
    if (xmlHttp==null) { 
      return; 
    } 
    var url="getchat.php?latest="+latest; 
    xmlHttp.onreadystatechange=stateChanged; 
    xmlHttp.open("GET",url,true); 
    xmlHttp.send(null); 
} 

function GetXmlHttpObject() { 
    var xmlHttp=null; 
    try { 
      xmlHttp=new XMLHttpRequest(); 
    } catch (e) { 
      try { 
        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
      } catch (e) { 
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
    } 
    return xmlHttp; 
} 

答えて

3

あなたが投稿したコードには、重要な要素が1つもありません:stateChanged関数。

あなた自身が投稿したコードを理解できない場合は、getchats.phpの呼び出しが完了し、関数 "stateChanged"が呼び出され、その関数が応答を処理する責任を負うことがあります。あなたが呼び出しているスクリプトと関数自体に接頭辞 "gets"があるので、私は応答があなたが興味を持っていると確信しています。

それ以外にも、あなたが投稿したコードを改善する。 (そうでない場合は、のstateChanged機能が応答を取得する方法がないので)私はそれがシングル「XMLHTTP」オブジェクトを宣言して、すべての関数にそれが利用可能にすることによって動作を推測すると思います。これは、最後の1つ(または最後の数)の前にAJAX要求を実行するまで大丈夫です、その場合には、オブジェクト参照が最新の要求たびに上書きされ、まだ答えていません。 appriopiateメッセージをユーザに配信することができるように、また

、任意のAJAXコード価値その塩は、成功事例の障害のための機能(サーバ・エラー、見つからないページ、等)のケースを提供します。

あなたのウェブサイトでAJAX機能を使用したい場合は、jQueryまたはsimilarframeworkの方向に向けるといいでしょう。

しかし、実際にこの技術を理解して、何が起こっているのかを知りたい場合は、自分でやっていることをやり遂げ、小さな軽量AJAXクラスを自分で構築しようとするときに具体的な質問をします。これは私のやり方です。今日はjQueryフレームワークを使用していますが、私はそれがシーンの背後でどのように動作するのかが分かっていて残念です。

0

私はすでにあなたのために懸命に仕事をしており、より堅牢なだけでなく、余分な便利を追加されるDOMAssistantのようなフレームワークを使用します特徴。

それとは別に、コードは仕事をするように見えます。

0

Ajaxで利用可能な多くのライブラリの1つを使用することを正直にお勧めします。私はprototype自分で使用し、他の人はjQueryを好む。私は試作品がとても好きです。 Prototype Ajax tutorialはそれをうまく説明しています。また、エラーを簡単に処理できます。

new Ajax.Request('/some_url', 
    { 
    method:'get', 
    onSuccess: function(transport){ 
     var response = transport.responseText || "no response text"; 
     alert("Success! \n\n" + response); 
    }, 
    onFailure: function(){ alert('Something went wrong...') } 
    }); 
関連する問題