首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用多个ajax调用成功填充html表

使用多个ajax调用成功填充html表
EN

Stack Overflow用户
提问于 2017-02-21 19:21:28
回答 1查看 1.1K关注 0票数 1

我正在使用ajax api调用来填充html表。表的第一列是The (item.name),我嵌套了第二个ajax调用,以便用日期填充第二列(顺便说一句,日期是从纪元开始以微秒为单位返回的……我将在稍后对此进行格式化)。我嵌套的原因是因为第二个调用使用了url中第一个调用的部分结果。代码如下:

HTML

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="output">
    <table id="scalaapi">
    <tbody>
    <tr><td></td><td class="uuid"></td></tr>
    </tbody>
    </table>
</div>

AJAX

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$.ajax({
type: 'GET',
url: "https://avacmd25.scala.com:44335/ContentManager/api/rest/players?offset=0&sort=name&filters=%7BplayerStatus%20:%20%7Bvalues:%5B'HEARTBEAT_OVERDUE'%5D,%20comparator%20:%20'eq'%7D%7D",
dataType: "json",
success: function(data) {
var list = data.list;
$.each(list, function(i, item) {
var tr = $('<tr>').append('<td>' + (item.name) + '</td>' + '<td>'+ 
    $.ajax({
    type: 'GET',
    url: "https://avacmd25.scala.com:44335/ContentManager/api/rest/heartbeats/sequence/"+(item.uuid),
    dataType: "text",
    crossDomain: true,
    success: $.each(function(results) { 
                $('.uuid').text(results);
            })
    })
    + '</td>');
$("#scalaapi").append(tr);
});
}
})

我得到的结果好坏参半。第一个api调用按预期工作,尽管它跳过了第一行。第二个api调用仅返回第一条记录,并且没有跳过第一行,随后的行将显示object对象

结果屏幕截图-

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-21 20:04:57

您在代码中执行了大量操作,无需等待AJAX调用完成,即可立即执行操作。试着让你的javascript更有耐心一点(下面是伪代码,我去掉了大部分额外的AJAX配置内容,希望能让代码做得更清楚):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$.ajax({..., success: function(data) {
    // when we get here the first AJAX call has returned

    // loop through each item in the response from the first AJAX call
    $.each(data.list, function(i, item) {
        // append the <tr> to the table with the information we have for the item and a placeholder for the second cell
        var tr = $('<tr><td>'+item.name+'</td><td class="uuid">...</td></tr>').appendTo('#scalaapi');

        // make the second AJAX call for this item
        $.ajax({
            url:".../sequence/"+item.uuid,
            ...,
            success: function(result) {
                // we now have the contents we need for the second <td>, so insert it
                tr.find('.uuid').text(result);
            }
         });
    });
});

我相信这会让你更接近你想要做的事情?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42376126

复制
相关文章
ajax调用
ajax调用 <script type="text/javascript"> $(function(){ $.ajax({ 'type':'get', 'url':'http://www.owenzhang.com/good.php', 'data':{ //默认自动添加callback参数 'order_id':'7',
OwenZhang
2021/12/08
1.4K0
ajax html例子,AJAX实例[通俗易懂]
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
全栈程序员站长
2022/09/22
2.5K0
ajax html例子,AJAX实例[通俗易懂]
Web Worker 调用Ajax
Web Worker -- Ajax 一般来说,Ajax 和 Web Worker 都是异步执行的,似乎没有必要在Web Worker里调用Ajax,如果存在这种情况,Ajax 需要按照一个队列里数据排列的顺序同步发送请求,如果不想页面被阻塞,这种情况下可以使用Web Worker 并且需要在Web Worker里使用Ajax。或者说非要在Web Woker里使用Ajax。 在Web Worker直接使用Ajax可能会碰到一个问题,Juery在做初始化的时候依赖DOM,而Web Worker和DOM是
芥末鱿鱼
2022/05/05
1.1K0
ajax_option.html
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ajax_option.html</title> <script type="text/javascript"> function getText(value){ var xmlhttp; if(value == ""){ document.getElementById("showTex
闵开慧
2018/03/30
8530
使用Python pandas读取多个Excel工作表
本文将尝试使用Python pandas读取来自同一文件的多个Excel工作表。我们可以通过两种方式来实现这一点:使用pd.read_excel()方法,并使用可选的参数sheet_name;另一种方法是创建一个pd.ExcelFile对象,然后解析该对象中的数据。
fanjy
2021/11/10
13.4K0
使用Python pandas读取多个Excel工作表
Python Web 实现Ajax调用
Html前端: $.ajax({ type:"GET", url:'/getmobile', data:'id='+id, dataType:"json", success:function(data){ alert(data);
py3study
2020/01/06
2K0
IDEA 调用函数自动填充所有参数插件安装和使用简介
工作中有时候经常上下游参数较多而且参数名一致,每次都要写几个字母然后回车或者alt+enter选择单个参数,效率较低。
明明如月学长
2021/08/27
2.2K0
提取多个html生成单个html
#!/bin/bash # coding=utf-8 """ 作者:gaojs 功能: 新增功能: schedule 是一个第三方轻量级的任务调度模块,可以按照秒,分,小时,日期或者自定义事件执行时间。 schedule 允许用户使用简单、人性化的语法以预定的时间间隔定期运行 Python 函数(或其它可调用函数) demo如下: schedule.every(10).seconds.do(job
懿曲折扇情
2022/08/24
1.1K0
WinDBG 使用多个路径下的符号表
在开发调试问题的过程中,我们经常使用 WinDBG 来调试崩溃、卡死或蓝屏的 Dump 文件,调试时我们需要将微软的符号表路径导入到 WinDBG 中,也需要将自己程序的符号表文件导入到 WinDBG 中,这样看 Dump 才一清二楚。导入多个符号表的方法就是在每个符号表路径后增加一个分号 ; 然后紧接着下一个符号表路径。
我与梦想有个约会
2023/10/21
2670
WinDBG 使用多个路径下的符号表
mysql单个表拆分成多个表
一.横向拆分 create table 新表的名称 select * from 被拆分的表 order by id limit int1,int2 int1为其实位置,int2为几条 注意:这样拆分后主键会失效手动让其主键生效即可所有要执行 alter table 新表的名称 modify 主键字段 int primary key auto_increment 二.纵向拆分 create table 新表的名称 select 需保留的字段 from 被拆分的表 拆分后原表都要保存 主要是把经常查的数据
小小咸鱼YwY
2020/06/19
3.8K0
阻止HTML表单提交跳转页面,使用 Jquery Ajax 请求接口
站长源码网 1. HTML 表单 ---- <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <form action="" method="post" onsubmit="return save(this)"> 手机号 <input type="text" name="mobile" autocomplete="off"> 登录密码 <input type="text" name="p
很酷的站长
2023/01/16
3.1K0
ecshop中ajax的调用原理
     ecshop中的ajax对象是在js/transport.js文件中定义的。里面是ajax对象文件。声明了一个var Ajax = Transport;对象和一个方法Ajax.call = Transport.run;
Java架构师必看
2021/03/22
6.7K0
HTML5填充颜色的fillStyle测试
效果: http://hovertree.com/texiao/html5/canvas/1/
全栈程序员站长
2022/07/15
1.6K0
ajax与后台之间传递多个对象方法
如果是需要通过ajax传递数组给后台,可以使用JSON.stringify()函数将JS数组转为json字符串,然后后台通过@RequestBody注解修饰,将前台传来的json字符串转为对应的参数类型。 前台
六月丶
2022/12/26
3.1K0
Ajax使用
var path = "{%#path%}";//当前路径(公司写法) var url = path + "?xmls=xmls/news.xmls&method=fangansxx";//URL路径
小语雀网
2022/05/06
6800
Ajax:初次认识ajax,ajax使用方法
我们来个简单的测试,使用最原始的HttpServletResponse处理 , .最简单 , 最通用
冷环渊
2021/10/19
5.8K0
python文档24-使用多个fixture和fixture互相调用
一个用例是可以传多个fixture参数的,如果fixture之间用依赖关系,也可以互相调用。
上海-悠悠
2018/10/24
1.5K0
jquery ajax请求成功,数据返回成功,seccess不执行的问题
1.状态码返回200--表明服务器正常响应了客户端的请求; 2.通过firebug和IE的httpWatcher可以看出服务器端返回了正常的数据,并且是符合业务逻辑的数据。 但是,程序就是不进入到回调函数success: function(data){****}而是进入到error: function(data){***} 记得上次是因为存在跨域访问的问题导致。这次查看不存在跨域的问题。此时就很是不解。 事情的来源是这样的: 后台的配置管理模块中有一块是关于国际化的配置,增加国际化描述等等,查询国际化描述。 问题的来源是在输入key='a' 查询前十条数据时发现可以正常的展现数据,但是当我输入key值为z时,并且再查询前20条数据是发现数据不能展现,但是server返回了数据库中的数 据。这时第一反应是事不时数据返回的有问题,粗略的检查了返回的数据发现和第一次查询没有什么明显的区别。但是只查询第十四条数据时发现,显示不出来。这 时候就开始怀疑了数据问题,进而到数据库中查找第十四条数据没有发现什么特别的地方。 这时开始怀疑,难道是JS程序有处理数据兼容性有问题,觉得甚是不可思议。整了大约半小时,越来越觉得不大可能。就放弃了这种想法。 有转向,重新审视数据。 但是发现数据从中间换行了,没太在意。 在纠结了一会儿后问一同事,指出数据可能多了一个"回车键",在其指点下到数据库表中再次查看该条数据发现有一个字段的值多了一个"回车键"。删除后,一切恢复正常。 思考第一次和第二次碰到的问题,我初步认识到: 1. 返回的数据类型一定要符合定义的数据类型。即如果你定义的 dataType 是 json 类型的,那么返回来的数据一定是 json 才可以,平且不然就会执行 error 里的程序块儿。 (1) 同时需要特别的注意返回的JSON数据是否是严格的JSON格式. (2) 也应该严重关切当后台返回的是一个List 数据(List当中的数据是Json格式)时,有没脏数据即不是严格的JSON格式。 很隐蔽的可能是数据某一个字段中在开始或末尾含有特殊字符,以"回车键"、"Tab键"等 这类隐蔽错误的规避措施就是好的编程习惯: a. 对于在页面填写入库的数据最好强制性的做,去空操作<利用客户端最好>。 b. 特殊的业务需注意特殊字符。 这样还不够,因为在开发过程中测试或开发人员自己在数据库中手动添加数据,可能会多加了空格等,导致程序调试,测试带来了麻烦。 这时就需要考虑在后台代码对获取的数据做处理。 2. 原因是ajax请求跨域了,解决方法是在两个文件里都添加一段 js: [/b]document.domain,或者采用Jsonp的方式,如我的前一篇blog中提到的。 还有一点对JQuery 中Ajax的一点其它的认识: 客户端发起请求,得到服务器端的相应是200,<正确拿到服务器响应的数据>没有问题.此时在判断进入success 对应的回调函数还是进入到error对应的回调函数之前,可能会校验一些东西: 1. 返回的每条数据是否是dataType中定义的数据类型。如果有部分数据不是或者哪怕一条数据没有严格的按照dataType定义的类型,程序就会进入到error:function(){****} 2. 请求的域和当前域是否是同一域,如果不是同一域也十分有可能进入error:function(){***}
大道七哥
2019/09/10
3.9K0
AJAX的一个简单实例,跨域的解决,使用JQuery来进行ajax的调用
跨域是用ajax异步请求时经常遇到的问题,只要协议、域名、端口号其中一个不同,就产生了跨域访问,解决的方法很简单,建议利用XHR2方法,在后台进行操作从而实现跨域支持IE9以上在服务器设置以下2个请求头就可以解决:
学长冷月
2020/08/02
6.4K0
点击加载更多

相似问题

AJAX成功无法将数据填充表HTML

14

使用AJAX填充HTML表

13

成功使用javascript中的数组填充ajax调用后的表

23

使用ajax调用将json数据填充到html表中。

00

AJAX成功调用后的多个调用?

50
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文