私はモバイルアプリを持っています。
JqXHR = $.ajax({
url: 'url',
data: null,
async: true,
cache: false,
dataType: 'json',
type: 'GET',
crossDomain: true,
timeout: 63000,
success: function(data, textStatus, jqXHR) {},
error: function(jqXHR, textStatus, errorThrown) {}
});
リクエスト。もう一方の端でのユーザー操作を63秒間待機します(PHPバックエンドは約62秒間実行できます)。さて、その間にこのリクエストを中止することにした場合は、を呼び出しますJqXHR.abort()
。エラーハンドラでは、実際のエラーとアボートをすでに処理/区別していますが、これは機能します。中止の直後に、他のAPI呼び出しをサーバーに送信して、ルーズエンドを結び付け、キャンセル要求がログに記録されていることを確認したいと思います。
そして問題があります。最初のリクエストでもabort()
、PHPスクリプトはサーバー上で実行されています。これは、2番目のリクエストも実行した場合、問題にはなりません。これにより、停止してdie()になります。しかし、それは起こっていません。2番目の要求は、最初の要求が終了するまで発生しません。
何か案は?
jQuery 1.8.2、jQuery Mobile 1.2.0、PhoneGap 2.0.0および2.1.0、Apache 2、Linux、PHP 5.3