我当前正在调用返回xml的api!我正在使用ajax的Api在两次调用之间需要250毫秒,据我了解,ajax进行异步调用,因此所有调用都同时发送,一旦调用到达要等待250毫秒,我如何强制我的php脚本之间在发出呼叫之前。我试图在无法正常工作的js中使用setTimeout HTML
<div class='grid-item' data-grid='13435'></div>
<div class='grid-item' data-grid='15339'></div>
<div class='grid-item' data-grid='14656'></div>
<div class='grid-item' data-grid='13447'></div>
<div class='grid-item' data-grid='12243'></div>
JS
$(".grid-item").each(function(i) {
var items = [];
var prod_id = $(this).attr('data-grid');
$.ajax({
type: 'POST',
url: 'test.php',
dataType: 'xml',
data: {
grid: 'set',
prod_id: prod_id
},
success: function(data) {
$(data).find('a\\:Inventory').each(function(index, value) {
var name = $(this).find('Name').html();
var age = $(this).find('Age').html();
var display = `
<div>
<div class='col-xs-12 text-center no-padding'>
<div class='col-xs-3 no-padding grid-data-box'>${name} </div>
<div class='col-xs-3 no-padding grid-data-box'>${age}</div>
</div>
`;
items.push({
name: name,
age: age,
});
$('[data-grid="'+prod_id+'"]').append(display) ;
});
console.log(items);
}
});
});
PHP
if(isset($_POST['grid'])){
echo file_get_contents(file_path) ;
}
答案 0 :(得分:2)
由于ajax是异步的,因此可以通过将超时时间乘以earth = Spell("earth", [StaticDice('s10', 10)])
索引来错开ajax请求。在下面的示例中,每个循环的第一次迭代将具有500ms的超时时间,第二次1000ms的超时时间,等等。
.each()