2012-04-18 9 views
0

私は現在、phonegapを使用してHTML5とZepto.jsのモバイルアプリケーションを作成しています。私たちのサーバはRuby on Railを使用しています。プレイブック(テストデバイス)では、アプリケーションはこの1つの画面で約20%の時間をフリーズします。それが起こると、応答せず、ドラッグされた場合はページがスクロールします(通常は無効になっているもの)。私たちはそれを行うサーバーへのアヤックスコールだと確信しています。ここに電話があります:モバイルアプリケーションをクラッシュさせるAjaxコールを修正するにはどうすればよいですか?

$.ajax({ 
     url: myurl+ajaxData+'&callback=?', 
     dataType: 'json', 
     async: true, 
     callback: "callback", 
     success: function(body) { 
      if (body.status === "successful"){ 
       successful(); 
      } 
      else { 
       var errstring = body.status + ": " + body.result 
       console.log (errstring); 
       alert(errstring); 
      } 
     }, 
     error: function(xhr, type) { 
      var errorstring = type + ": " + xhr.status + "\n" + xhr.statusText + "\n" + xhr.responseText; 
      alert (errorstring); 
      console.log (errorstring); 
      storage.setItem("retrieved", "false"); 
     } 
    }) 

これを引き起こしている可能性がありますか?

答えて

1

私はあなたが問題だったものをキャッチするためにコールし、誤差関数に適切なタイムアウトを設定ことにより、以下のようにコードを更新することをお勧め:

$.ajax({ 
    url: myurl+ajaxData+'&callback=?', 
    dataType: 'json', 
    async: true, 
    error: function(jqXHR, strError){ 
     if(strError == 'timeout') 
     { 
      //do something. Try again perhaps? 
     } 
    }, 
    success: function(){ 
     //do something 
    }, 
    timeout:3000 
}); 

あなたは、エラーの種類がスローされた参照を取得することができますエラー:function(jqXHR、textStatus、errorThrown)オプションのtextStatusパラメータにアクセスして、オプションは、 "タイムアウト"、 "エラー"、 "中止"、 "parsererror"です。

関連する問題