ajax中的循环方案
Ajax是由HTML、Javascript技术、DHTML和DOM。这一突出的方法将笨拙的Web界面交互式AJAX应用。本文的作者是一个Ajax专家演示了如何一起工作--从这些技术的概况,详细讨论高效的Web发展的一个现实。他还公布了Ajax的核心概念的神秘面纱,包括XMLHttpRequest对象。
五年前,如果你不知道XML,你是一只丑小鸭,没有人注意。十八个月前,红宝石一直成为人们关注的中心,不知道露比的程序员只能cold-shouldered.today,如果你想跟上最新的技术潮流,你的目标是Ajax。
但是Ajax不仅仅是一种时尚,它是构建一个网站的强大方法,而不是学习一种新语言的困难。
1。业务需求
在开发中,当完成列表页加载时,我需要根据每个项目的ID从服务器端获取相应的数据,然后将所获取的数据分配给与当前id相对应的标记。
例如,下面的表单如下所示:
我有一系列商品编号。我需要根据商品的数量获得相应的商品名称,然后使用ajax获取相应的产品,然后使用JS来更新界面。
两。实施方案
2.1错误的方案
在正常情况下,我们将直接考虑为循环编写一个for,在循环中启动Ajax请求以获取数据,然后将所获取的数据更新到相应的id相应的标签。
如下:
我们模拟数组中的一些列id:
var array = { 1, 3, 2,5, 3 };
循环ajax请求方法:
功能foreach_ajax(){
对于(var i = 0;i < array.length;i++){
美元。得到( / / 家loop_ajax
console.log(数组{我} +
});
}
}
呼叫:
$(函数(){())
foreach_ajax();
});
试验结果如下:
我们可以看到,在循环的内部,我们根本无法得到数组{ }的值。
导致这种结果的原因是Ajax是异步执行的。在循环结束时,Ajax第一次没有返回服务器数据,而在循环结束时已释放了i,所以数组定义为未定义的。
2.2正确的方案
正确的方法是递归地回收Ajax。
如下:
我们模拟数组中的一些列id:
var数组{ 1, 3, 2,5, 3 };
递归ajax请求方法:
loop_ajax(指数函数,数组){
如果(索引<数组长度){
var值=数组{索引};
美元。得到( / / 家loop_ajax
console.log(数组{ } +指标
如果(索引<数组长度){
loop_ajax(指数+ 1,阵列);
}
});
}
}
呼叫:
$(函数(){())
loop_ajax(0,阵列);
});
试验结果如下:
以上是Ajax Xiaobi介绍的循环计划,我希望它能帮助你。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站。