2012-03-07 2 views
0

この素晴らしいAJAXコードを別のサイトから削除しました。問題は、私は私のページに出力を取得する方法を把握することができますそのようなラメJavaScriptプログラマーです。私のstartUp()関数は、oは定義されていないと言います。私はFirebugコンソールでPHPの結果を見る。o XMLHTTPRequestよりUndefined

TIAあなたのお手伝いをします。

var asyncRequest = function() { 
    function handleReadyState(o, callback) { 
    if (o && o.readyState == 4 && o.status == 200) { 
     if (callback) { 
     callback(o); 
     } 
    } 
    } 

    var getXHR = function() { 
    var http; 
    try { 
     http = new XMLHttpRequest; 
     getXHR = function() { 
      return new XMLHttpRequest; 
     }; 
    } 
    catch(e) { 
     var msxml = [ 
     'MSXML2.XMLHTTP.3.0', 
     'MSXML2.XMLHTTP', 
     'Microsoft.XMLHTTP' 
     ]; 

     for (var i=0, len = msxml.length; i < len; ++i) { 
     try { 
      http = new ActiveXObject(msxml[i]); 
      getXHR = function() { 
      return new ActiveXObject(msxml[i]); 
      }; 

      break; 
     } 

     catch(e) {} 
     } 
    } 

    return http; 

    }; 

    return function(method, uri, callback, postData) { 
    var http = getXHR(); 
    http.open(method, uri, true); 
    handleReadyState(http, callback); 
    http.send(postData || null); 

    return http; 
    }; 

}(); 

asyncRequest('GET', 'voterserver.php', function(o) { 
    console.log(o.responseText); 
}); 

function startUp() { 
    //alert("Here!"); 
    document.getElementById("user_list").innerHTML=o.responseText; 
} 

答えて

0

3番目のパラメータは

のthatsようasyncRequestがoの値は、その関数に渡されると、起動機能では使用できません

その中に

function(o) { 
    console.log(o.responseText); 
} 

をコールバック関数をとります。

function startUp() { 
    asyncRequest(
     'GET', 
     'voterserver.php', 
     function(o) 
     { 
      document.getElementById("user_list").innerHTML=o.responseText; 
     }); 
} 

を次のようにあなたのスタートアップを書き換える必要があり

私はそれをより明確にするためにインデントを設定しました。

Javascriptフレームワークの1つを使って見てみると、このようなことがもっと簡単になり、良いドキュメントが得られるかもしれませんが、私はmootoolsを使用しますが、JQueryは非常に人気があります。あなたのための

私は、あなたの質問に入れて、それが仕事をdidntのthteコードでJSFIddleを作ってみましたUPDATE

、私はそれを動作させるために、それに変更を加えたし、そのHereへ試してみる。迅速な対応のために多くのMooToolsのMooTools

+0

おかげで

同じこと。私はネット上のさまざまなフレームの作品についてかなり見たことがありますが、私は膨満感を恐れて訴えることに消極的でした。私のアプリケーションはかなりシンプルですが、時間が非常に敏感です。 100ミリ秒のリフレッシュ間隔を250 MAXにしたいと思います。 javascriptのフレームワークの1つがその要件を満たすと思いますか? –

+0

私は自分のコードに提案された修正を使用しました。しかし、私のページにはまだレスポンスが表示されていません。フレームワークサイトでそのことについて話しているので、スクリプトが実行されたときにページのロードが完了していないことが原因であると思われます。しかし、私が上記のように私はフレームワークを使用することを嫌いです。だから、を私のページの一番下に置いたが、うまくいかなかった。 –

+0

はい、私は複数の画像(dataurls)を返す200ms間隔のAjaxリクエストを処理しているページを持っています。私は速くテストしましたが、私のアプリケーションには必要ありません。 – Dampsquid

関連する問題