0

私は、クライアント サーバー ベースのアプリケーションであるクロス プラットフォームのモバイル ソリューションに取り組んできました。サーバーへのWebサービス呼び出しを行うためにajax呼び出しを使用しています。ほとんどの Web サービスは正常に動作していますが、要求に基づいてサーバー側で実行する必要がある計算があり、応答に遅延がある場合、応答としてステータス 0 が返されます。タイムアウトオプションを試してみましたが、役に立ちませんでした。参照用に同じコード スニペットを追加します。

$.ajax({
        type: "POST",
        url: wsUrl,
        contentType: "text/xml",
        dataType: "xml",
        timeout: 300000,
        data: soapRequest,
        success: processSuccess,
        error: processError
});

function processSuccess(data, status, req)
{
}

function processError(data, status, req) 
{
   console.log(data+'---------   '+status+'-------- '+req);
}

サーバーの応答が速い場合、期待どおりの応答が得られることがありますが、ほとんどの場合、ステータス 0 エラーが発生します。ほとんどの場合、2 分後にこのエラーが発生します。ネイティブ Android アプリケーションで同じコードを試すと、問題なく正常に動作します。完全な応答がサーバーからフェッチされるまで、要求が壊れないようにするオプションはありますか? 私が間違っているかもしれませんが、そうでない場合、Web サービスの呼び出し中にターンアラウンドタイムを設定するオプションはありますか? これはモバイル ブラウザ ベースのアプリケーションであるため、応答に 2 分以上かかる場合、ブラウザにはステータス 0 応答で要求をキャンセルするオプションがあります。エラーメッセージすら表示されません。さらに情報が必要な場合は、お知らせください。

4

1 に答える 1

0

長い ajax 接続 - サーバーのパフォーマンスに非常に悪いです。時間間隔ごとにステータスを確認するのはどうですか?setIntervalタイマー作成機能を利用できます。また、定期的にタスクのステータスを確認します。

于 2012-11-27T07:28:28.070 に答える