Mam pewne problemy z wysyłaniem żądań HEAD
i zachowywanie integralności danych w tablicy.Żądanie Ajax HEAD za pośrednictwem Javascript/jQuery
Biorąc pod uwagę ten fragment:
var imageTemp = Array();
$('*')
.each(function(index){
if($(this).css('background-image') != 'none'){
imageTemp.push($(this).css('background-image').slice(5, -2));
}
});
I przechwytywania adresów URL wszystkich obrazów tła na danej stronie. Teraz, próbując chwycić wielkość każdego obrazu poprzez HEAD
wniosków o Content-Length
, używam ten fragment:
var imageData = Array();
for(var i = 0; i < imageTemp.length; i++){
ajaxSizeRequest = $.ajax({
type: "HEAD",
async: true,
url: imageTemp[i],
success: function(message){
imageData.push([imageTemp[i], ajaxSizeRequest.getResponseHeader('Content-Length')]);
}
});
}
Jednak, kiedy zrzucić imageData
poprzez console.log
, że każdy element (który powinien być tablicą zawierającą adres URL i treść długości) kończy jako [undefined, XXXX]
gdzie XXXX
jest zawsze wielkość ostatni wniosek Content-Length
Jestem zakłopotany, choć wydaje się być rozrządu/scoping problem. Czy mam tutaj jakiś rodzaj wyścigu?
Zamiast 'zmiennej ajaxSizeRequest', można użyć drugiego parametru Opcja' success' oddzwonienia za. – SLaks