在实际使用中,我们经常会用的Ajax(异步加载,在不刷新整个网页的前提下对网页部分内容进行更新)

使用时,偶尔会遇上需要从一个接口中得到一个数组和数据对应的id,在另一个接口上再得到数据,最初写法如下:

$.get(url_1, function (data) {
var dom = [];
for (var i = 0; i < data.length; i++) {
var item = data[i]; //两个url不一致,根据id查找另一个表
$.get(url_2, function (data) {
var item_result = data;
dom.push("<div> item_result.id</div>");
}); }
$("#id").empty().append(dom.join(''));
});

但是此时经常会出现数组清空后并没有写入数据的问题,初学时常误以为时接口错误的问题,其实不然

这是由于$get()等Ajax方法在调用接口时需要时间,导致push还未完成已经发生了append的行为,即此时数组清空,但是dom数组中此时并没有join读取的数据

故此处需要将循环中的Ajax修改为同步,代码修改如下:

$.get(url_1, function (data) {
var dom = [];
for (var i = 0; i < data.length; i++) {
var item = data[i]; //在第二次的Ajax前将异步改同步
$.ajaxSettings.async = false; //两个url不一致,根据id查找另一个表
$.get(url_2, function (data) {
var item_result = data;
dom.push("<div> item_result.id</div>");
}); //注意在ajax中的push完成后,将其改回异步
$.ajaxSettings.async = true; }
$("#id").empty().append(dom.join(''));
});

最新文章

  1. github android
  2. webService 跨域请求webconfig配置
  3. Android M 控件:Snackbar、Toolbar、TabLayout、NavigationView
  4. solr
  5. MyBatis知多少(8)关系型数据库
  6. PL/SQL Developer自动补全SQL技巧
  7. python学习day1--python基础
  8. ASIHTTPRequest-插件的使用
  9. pureMVC简单示例及其原理讲解五(Facade)
  10. centos7下安装PHP swoole扩展
  11. java protected修饰符理解
  12. RabbitMQ安装手册
  13. 5.5Python数据处理篇之Sympy系列(五)---解方程
  14. Springboot集成ES启动报错
  15. Python Built-in Function 学习笔记
  16. 查询 SQL_Server 所有表的记录数: for xml path
  17. xpath ,css
  18. awk——getline
  19. Arduino下读取DHT22温湿度(不使用第三方库)
  20. js之操作cookie

热门文章

  1. 关于“java.lang.OutOfMemoryError : unable to create new native Thread”的报错问题
  2. Unity小知识---第三人称中设置摄像机的简单跟随
  3. Linux 使用echo向文件末尾追加命令
  4. 洛谷 P2234 [HNOI2002]营业额统计
  5. rest-assured的JsonPath使用方法总结
  6. P2468 [SDOI2010]粟粟的书架
  7. Oracle中对XMLType的简单操作(extract、extractvalue)
  8. 将libFM模型变换成tensorflow可serving的形式
  9. opencv + ffmpeg
  10. VS2008调试程序时出现&quot;XXX mutex not created.&quot;