コールバックをXMLHttpRequest.prototype.open()
に挿入しようとしていますので、メソッドとURLを知ることができ、パフォーマンスレポートのタイムスタンプを設定するだけです(変更されたXMLHttpRequest.prototype.send()
と一緒に)。ここでXMLHttpRequest.prototype.open()を変更することはできますか?
は、私がこれまでに思い付いたものです:
function addXMLRequestCallback(open, callback) {
var nativeOpen, nativeSend, i;
if (XMLHttpRequest.callbacks) {
XMLHttpRequest.callbacks.push(callback);
} else {
XMLHttpRequest.callbacks = [callback];
nativeOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function() {
open.forEach(function(item) {
// not sure what to do here...
});
}
nativeSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function() {
for (i = 0; i < XMLHttpRequest.callbacks.length; i++) {
XMLHttpRequest.callbacks[i](this);
}
nativeSend.apply(this, arguments);
}
}
}
addXMLRequestCallback(function(method,url){
// Maybe instead I should put code here...
}, function(xhr) {
// then do something here?
});
「send」と同じようにしてください。私たちはそこで何をすべきかわからない。何をしたいのか?あなたは何をしたいのか? – Bergi