@Bergiが提案したタイミングテスト:
function initCache(url) {
var xhr = new XMLHttpRequest();
xhr.open("get", url); xhr.send();
console.log("Initialized cache");
}
function reuseXhr(url, numLoops) {
var xhr = new XMLHttpRequest();
for (var i=0; i<numLoops; i++) {
xhr.open("get", url); xhr.send();
}
xhr.abort();
}
function newXhr(url, numLoops) {
var xhr;
for (var i=0; i<numLoops; i++) {
xhr = new XMLHttpRequest();
xhr.open("get", url); xhr.send(); xhr.abort();
}
}
function testIt() {
var url = "http://urlwithcors.com/"; // Pseudo-URL with CORS enabled
var numLoops = 1000;
initCache(url);
setTimeout(function(){
console.time("reuse"); reuseXhr(url, numLoops); console.timeEnd("reuse");
console.time("new"); newXhr(url, numLoops); console.timeEnd("new");
}, 5000);
}
testIt();
ここで、Chrome での結果は次のとおりです。
test-xhr-reuse.js:6 XHR finished loading: GET ...
reuse: 510.000ms
new: 386.000ms
だから...遅いPCでの呼び出しごとに0.1ミリ秒、それは面倒な価値はありません...
今待ってください-xhrを再利用するのはさらに遅くなります...それだけの価値はありません。;-)
もう少しテストすると、まったく違いがないことがわかります。それは偶然の問題です。