Ajax中的循环方案

 更新时间:2016年10月24日 10:51:08   作者:梦亦晓  
在开发中,当一个列表页面加载完成后,我需要根据列表每一项的id去服务器端获取对应的数据然后再把获取的数据赋给当前id对应的标签,怎么实现的呢?下面小编给大家介绍下ajax中的循环方案,感兴趣的朋友一起学习吧

Ajax 简介

Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。本文的作者是一位 Ajax 专家,他演示了这些技术如何协同工作 —— 从总体概述到细节的讨论 —— 使高效的 Web 开发成为现实。他还揭开了 Ajax 核心概念的神秘面纱,包括 XMLHttpRequest 对象。

五年前,如果不知道 XML,您就是一只无人重视的丑小鸭。十八个月前,Ruby 成了关注的中心,不知道 Ruby 的程序员只能坐冷板凳了。今天,如果想跟上最新的技术时尚,那您的目标就是 Ajax。

但是,Ajax 不仅仅 是一种时尚,它是一种构建网站的强大方法,而且不像学习一种全新的语言那样困难。

一、业务需求

在开发中,当一个列表页面加载完成后,我需要根据列表每一项的id去服务器端获取对应的数据然后再把获取的数据赋给当前id对应的标签。

例如如下表格:

我有一系列的商品编号,我需要根据商品编号通过ajax到服务器获取商品对应的名称,然后再用js更新界面(实际中的业务当然不是获取商品名称这么简单)

二、实现方案

2.1 错误方案

一般情况下,我们会直接想到,直接写个for循环,在循环内发起ajax请求获取数据,再把获取的数据更新到对应的id对应的标签上,

如下:

我们以数组模拟一些列id:

var array = [1, 3, 2, 5, 3];

循环的ajax请求方法:

function foreach_ajax() {
for (var i = 0; i < array.length; i++) {
$.get("/home/loop_ajax", { value: array[i] }, function (data) {
console.log(array[i]+","+data);
});
}
}

调用:

$(function () {
foreach_ajax(); 
});

测试结果如下:

我们可以看到,在循环的内部我们根本取不到array[i]的值。

导致这种结果的原因是:ajax是异步执行的,在循环结束的时候第一次ajax还没有将服务器数据返回,而循环结束的时候for中的变量i已经释放了,所以array[i]=undefined

2.2 正确方案

正确的方式是以递归的方式循环ajax。

如下:

我们以数组模拟一些列id:

var array = [1, 3, 2, 5, 3];

递归的ajax请求方法:

function Loop_ajax(index, array) {
if (index < array.length) { 
var value = array[index];
$.get("/home/loop_ajax", { value: value }, function (data) {
console.log(array[index] + "," + data);
if (index < array.length) {
Loop_ajax(index + 1, array); 
}
});
}
}

调用:

$(function () {
Loop_ajax(0, array);
});

测试结果如下:

以上所述是小编给大家介绍的Ajax中的循环方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • prototype试用整理资料

    prototype试用整理资料

    prototype试用整理资料...
    2007-01-01
  • ajax无刷新分页的简单实现

    ajax无刷新分页的简单实现

    这篇文章主要为大家详细介绍了ajax无刷新分页的简单实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • AJAXRequest v0.2

    AJAXRequest v0.2

    AJAXRequest v0.2...
    2006-12-12
  • jquery中的ajax同步和异步详解

    jquery中的ajax同步和异步详解

    jquery ajax同步的意思是当JS代码加载到当前ajax的时候会把页面里所有的代码停止加载,页面出现了假死状态,当这个ajax执行完毕后才会继续运行其他的代码假死状态解除。而异步的意思是这个ajax代码运行中的时候其他代码一样可以运行。本文给大家详解,感兴趣的朋友参考下
    2015-09-09
  • Ajax基础使用详解

    Ajax基础使用详解

    这篇文章主要介绍了Ajax基础使用详解,是前后台交互的能⼒ 也就是我们客户端给服务端发送消息的⼯具,以及接受响应的⼯具,本篇就来对ajax基础进行详细讲解,需要的朋友可以参考下
    2023-05-05
  • AJAX 请求区分 $_SERVER[''HTTP_X_REQUESTED_WITH''] 小解

    AJAX 请求区分 $_SERVER[''HTTP_X_REQUESTED_WITH''] 小解

    关于这个内容,很多人都有所了解.但从我搜索的内容来看,他们只是略微看一下,根本不知道里面到底是什么情况.
    2011-06-06
  • 关于Ajax技术中servlet末尾的输出流

    关于Ajax技术中servlet末尾的输出流

    这篇文章主要介绍了关于Ajax技术中servlet末尾的输出流的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-08-08
  • ajax详解_动力节点Java学院整理

    ajax详解_动力节点Java学院整理

    这篇文章主要介绍了ajax详解,详细的介绍了Ajax 简史以及 基本用法,有兴趣的可以了解一下
    2017-07-07
  • jquery ajax多次请求数据时 不刷新问题的解决方法

    jquery ajax多次请求数据时 不刷新问题的解决方法

    下面小编就为大家带来一篇jquery ajax多次请求数据时 不刷新问题的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • Ajax 框架之SSM整合框架实现ajax校验

    Ajax 框架之SSM整合框架实现ajax校验

    这篇文章主要介绍了Ajax 框架之SSM整合框架实现ajax校验,需要的朋友可以参考下
    2017-04-04

最新评论