2012-01-23 11 views
0

私はいつも私のウェブアプリケーションのボタンを押したので、何の反応も出ません。 「ボタン」はajax呼び出しを開始します。私の推測では、大量のWebトラフィックがあり、タイムアウトまたはそれに類するものです。サーバーからのajax応答の最大待ち時間はありますか?この動作をログに記録する方法はありますか?ここに私のajaxコードがあります。断続的なajaxエラーが検出できませんか?

var Ajax = { 
    createAjaxObject: function() 
    { 
     var request; 
     try 
     { 
      request = new XMLHttpRequest(); 
     } 
     catch(error) 
     { 
      try 
      { 
       request = new ActiveXObject("Msxml2.XMLHTTP"); 
      } 
      catch(error) 
      { 
       try 
       { 
        request = new ActiveXObject("Microsoft.XMLHTTP"); 
       } 
       catch(error) 
       { 
        request = false; 
       } 
      } 
     } 
     return request; 
    }, 

    useAjaxObject: function(path, param, ajax_func, html_div) 
    { 
     var object = new Ajax.createAjaxObject(); 
     object.open("POST", path, true); 
     object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     object.setRequestHeader("Content-length", param.length); 
     object.setRequestHeader("Connection", "close"); 
     object.onreadystatechange = function() 
     { 
      if(this.readyState === 4) 
      { 
       if(this.status === 200) 
       { 
        ajax_func(this.responseText, html_div); 
       } 
       else 
       { 
        Ajax.repeatUseAjaxObject(path, param, ajax_func, html_div); 
        return false; 
       } 
      } 
     }; 
     object.send(param); 
     return true; 
    }, 
    repeatUseAjaxObject: function(path, param, ajax_func, html_div) 
    { 
     var state = false, 
      count = 1; 
     while(state === false && count <= 5) 
     { 
      state = Ajax.useAjaxObject(path, param, ajax_func, html_div); 
      if(count !== 1) 
      { 
       alert('Ajax Object Use Failed '); 
      } 
     count++; 
     } 
    } 

答えて

2

実際に要求された情報ではなく、応答タイプが間違っているか、サーバーがエラーステータスコード/ページを返していることがあります。

フィドラー http://fiddler2.com/fiddler2/(無料)

やチャールズ http://www.charlesproxy.com/

:フル応答(または実際に応答の欠如がある場合)を確認する良い方法は、以下のような優れたHTTPトラフィックプロキシデバッガであります

各Webリクエストのライフサイクルに関する完全な情報を提供します。最小時間または最大時間まで、一般に、サーバは任意の要求のタイムアウトの設定を有する。

クライアントサイトのタイムアウト:jQuery Apiから...自分自身をロールバックしているのでわからない。

要求のタイムアウト(ミリ秒単位)を設定します。これは$ .ajaxSetup()で設定されたグローバルタイムアウトをオーバーライドします。タイムアウト期間は、$ .ajax呼び出しが行われた時点から開始されます。他のいくつかの要求が進行中で、ブラウザが利用可能な接続がない場合、要求が送信される前にタイムアウトする可能性があります。

+0

しかし、クライアントはそれを開始します...それは待っているものです...サーバが応答しない場合は...何をしますか?ある時点でタイムアウトする必要がありますか? –

1

log4javascript「Javaロギングフレームワークに基づいたJavaScriptロギングフレームワーク」をチェックしてみるとよいでしょう。

AjaxAppenderは、特にログメッセージの送信に使用できます。

FlavorScapeが示すように、サーバーにはサーバー要求のタイムアウトの設定も必要です。

関連する問題