Tôi dường như đang gặp phải một số vấn đề với yêu cầu HEAD
và bảo toàn tính toàn vẹn của dữ liệu trong một mảng.Yêu cầu HEAD Ajax qua Javascript/jQuery
Với đoạn mã này:
var imageTemp = Array();
$('*')
.each(function(index){
if($(this).css('background-image') != 'none'){
imageTemp.push($(this).css('background-image').slice(5, -2));
}
});
tôi nắm bắt được URL của tất cả các nền-hình ảnh trên một trang nhất định. Bây giờ, cố gắng để lấy kích thước của mỗi hình ảnh qua HEAD
yêu cầu Content-Length
, tôi sử dụng đoạn mã này:
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')]);
}
});
}
Tuy nhiên, khi tôi đổ imageData
qua console.log
, tôi từng yếu tố (mà phải là một mảng chứa các URL và độ dài nội dung) kết thúc là [undefined, XXXX]
trong đó XXXX
luôn luôn là kích thước của yêu cầu mới nhất Content-Length
Tôi bị bối rối, mặc dù nó có vẻ là vấn đề về thời gian/phạm vi. Tôi có một loại tình trạng chủng tộc xảy ra ở đây không?
Thay vì một biến 'ajaxSizeRequest', bạn có thể sử dụng tham số thứ hai 'success' callback của. – SLaks