Me parece estar teniendo algunos problemas con la fabricación de HEAD
solicitudes, y la preservación de la integridad de los datos en una matriz.petición HEAD Ajax a través de Javascript/jQuery
Teniendo en cuenta este fragmento:
var imageTemp = Array();
$('*')
.each(function(index){
if($(this).css('background-image') != 'none'){
imageTemp.push($(this).css('background-image').slice(5, -2));
}
});
capturo las direcciones URL de todos los fondo-imágenes en una página determinada. Ahora, tratando de agarrar el tamaño de cada imagen a través de HEAD
solicitudes de Content-Length
, utilizo este fragmento:
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')]);
}
});
}
Sin embargo, cuando yo tiro imageData
través console.log
, que cada elemento (que debería ser una matriz que contiene la URL y el contenido de longitud) termina como [undefined, XXXX]
donde XXXX
es siempre el tamaño de la última solicitado Content-Length
estoy perplejo, a pesar de que parece ser un/tema de alcance momento. ¿Tengo algún tipo de condición racial aquí?
En lugar de una variable 'ajaxSizeRequest', se puede usar el segundo parámetro' de devolución de llamada Success'. – SLaks