我试图允许页面初始加载,同时允许同步 ajax 发布调用运行。
我试过使用 $.post 但这不会按指定的顺序返回我的输出。它返回首先加载的任何内容。有没有办法在允许页面加载的同时同步加载?
这是我的两个示例:示例 1 $.post
var count = 20;
for(var i = 0; i<=count; i++){
$.post("page.php", {variables: variables}, function(data){
$('.container').append(data);
var card = $('.card').last();
card.children('.image').append(i);
});
}
和示例 2 $.ajax
var count = 20;
for(var i = 0; i<=count; i++){
$.ajax({
url: "page.php",
type: "POST",
data: {
page: page,
count: count,
idx: i
},
async: false,
}).done(function(data){
$('.container').append(data);
var card = $('.card').last();
card.children('.image').append(i);
});
}
他们都“工作”,因为他们从正确的地方提取我需要的一切,并显示正确的信息。对于第一个示例,它是随机加载的。无论它可以先加载什么,都会先显示。即使在我的帖子中,我也会append(i)
将数字21
附加到所有内容中。就像它通过循环(异步)并将最后一个i
(21)放在每个元素中一样。
第二个示例完全按照我想要的方式工作,但当然因为它async:false
在加载每个元素之前不会加载页面。
如何在不等待页面加载的情况下获得两全其美并按顺序加载?我在这里想念什么?