我正尝试#container
按照要求的顺序将10张图片添加到我的图片中,但由于某些原因,我不知道它们会被无序地退回。
我目前正在通过for
循环获取URL ,并将其传递给AJAX请求,如下所示:
for (i = 0; i < $links.length; i++) {
link = $links.eq(i).attr('href');
// Appends anchor into #container
$('#container').append('<a href="' + link + '" class="tile"><p>' + $links.eq(i).text() + '</p></a>');
$.ajax({
type: 'GET',
url: link
}).done(function (data) {
var $data = $(data);
$('#container').append($data.find('img').eq(0));
});
};
任何有关如何解决或改善这一点的见解都将是很棒的!谢谢!
这是预期的行为,因为请求是异步的。可以按照您要求的顺序触发它们,但是响应时间完全取决于服务器以及处理每个请求所花的时间。
例如,假设您发出3个请求。#1需要150毫秒才能完成,#2需要200毫秒,而#3需要75毫秒。done()
然后,您的处理程序将按3、1、2的顺序执行请求。
如果您依赖于以特定顺序处理的响应,则需要修改代码以在单个请求中发送所有数据,以便可以根据需要格式化响应。
使用async: false
可能会产生您期望的行为,但是使用起来却是非常糟糕的做法,并且上述解决方案会更可取。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句