我想用ajax读取一堆图像。 如果我知道每个图像的网址,我怎样才能同时制作3个图像ajax请求,然后获取接下来的3个直到我拥有它们?
这是我对一个图像的ajax函数
var image_url = images[i];
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
console.log(xhr.response, typeof xhr.response);
}
}
xhr.open('GET', image_url);
xhr.responseType = 'blob';
xhr.send();
答案 0 :(得分:2)
如果将async
设置为true,则可以同时触发多个。浏览器将限制一次有多少,具体取决于使用的是哪一个。
$.ajax({
type: "GET",
async: false,
url: "foo2.php"
});
带有ajax的 async
与您的想法相反。
答案 1 :(得分:0)
您应该将每个图像的URL放在一个数组中。 如果你对jQuery没有任何疑虑,你应该使用$ .get,因为在这种情况下它将有助于大量处理。然后在递归函数中调用它。这是伪代码,我还没有对其进行测试。
var imageUrls = [];//populate with your URLs
getImage(0);
getImage(1);
getImage(2);
var getImage = function(iteration){
$.get(imageUrls[iteration], function(data){
//handle the image
//call the function again with the next index
getImage(iteration+3);
});
}