時々、アプリの動作がおかしくなることがあります。私のリクエストのいくつかは、システムなしで長時間かかるようになり、その後失敗する可能性があります。ログを調べても、そのようなリクエストは見つかりません。サーバーによって処理されていないようです。
したがって、長期または失敗したリクエストを追跡するクライアント側スクリプトを実装し、この情報をサーバーに送信したいと考えています。
そのような機能を実装する最良の方法は何ですか?
時々、アプリの動作がおかしくなることがあります。私のリクエストのいくつかは、システムなしで長時間かかるようになり、その後失敗する可能性があります。ログを調べても、そのようなリクエストは見つかりません。サーバーによって処理されていないようです。
したがって、長期または失敗したリクエストを追跡するクライアント側スクリプトを実装し、この情報をサーバーに送信したいと考えています。
そのような機能を実装する最良の方法は何ですか?
(1) 必要な機能を提供するためにオーバーライドできますXMLHttpRequest
。
var mylog = [];
XMLHttpRequest = (function(XMLHttpRequest) {
return function() {
XMLHttpRequest.apply(this, arguments);
this.timeout = 30 * 1000; //thirty seconds
this.ontimeout = function() {
mylog.push("Request timed out");
};
};
})(XMLHttpRequest);
setInterval(function() {
//send to server
mylog = [];
}, 60 * 1000);
timeout
(2) それらを設定する独自の XHR ファクトリを作成できますontimeout
。これを使用するには、すべてのコードを大幅に変更します。
(3) jQuery について言及されていないので、ここではあまり説明しませんが、jQuery を使用すると、$.ajaxSetup
デフォルトのパラメーターを設定するために使用できます。
ただし、実際には、サーバー側からこれを追跡することに時間を費やす必要があります。彼らはあなたが望むものを集める上ではるかに信頼できます.