先看一段代码

var x = document.getElementsByName(data);
var i;
for (i = 0; i < x.length; i++) {var value=x[i].id;$.getJSON(ctx + '/sys/dict/description', {value: value}, function (data) {var str = '&nbsp;<img src="/static/images/toolbox/description.png" title="'+data.value+'"/>';$('.tooltip-description [desc='+value+']').append(str);});

本段代码的意图是根据元素名取得页面上所有元素,然后逐个发送请求到后台,将根据该得到的数据在页面上进行展示,代码中,for循环应是一个原子操作,但$.getJSON()是异步请求数据,第一个请求还没结束,第二个就已经开始,导致数据混乱,因此应对for循环进行修改,使其变为线程安全,具体做法是在for循环之前加一段代码:

var x = document.getElementsByName(data);
var i;
$.ajaxSettings.async = false;for (i = 0; i < x.length; i++) {var value=x[i].id;$.getJSON(ctx + '/sys/dict/description', {value: value}, function (data) {var str = '&nbsp;<img src="/static/images/toolbox/description.png" title="'+data.value+'"/>';$('.tooltip-description [desc='+value+']').append(str);});

等for循环结束后,再将其修改回来,
$.ajaxSettings.async = true;
如此,使getJSON函数各请求之间不会互相影响。

最新文章

  1. python读取输入流_Python读取实时数据流教程
  2. 如何寻找属于自己的高富帅和大公司!
  3. 博耳电力中标上海万国数据中心项目
  4. 设计模式--6大原则--开闭原则
  5. 回流,重绘的概念,以及他们的区别?
  6. 学会用好 Visual Studio Code
  7. mysql事物 总结_Mysql事务总结
  8. [转]自动驾驶基础--路径规划
  9. .NET Core 2.0使用NLog
  10. 使用Java编写简单的老虎机游戏
  11. 在一台机器上运行多个ActiveMQ实例
  12. canvas 动画库 CreateJs 之 EaselJS(上篇)
  13. 化学方程式作评、数学上成知识百科……那些“别人家的老师”有何特别?
  14. 全员学习低代码,一汽大众领跑数智化转型背后的秘密
  15. java手动切换成独立显卡_MacBook如何一键切换显卡 MacBook显卡切换方法【详细介绍】...
  16. 网站制作---asp操作数据库的一个小例子
  17. String的replaceAll()用法详解
  18. 微信小程序,模板+按钮+绑定事件
  19. 【z变换】3. 逆z变换
  20. Android P 禁用OTG U盘使用

热门文章

  1. 厨房有约 | 华人生活馆HuarenStore官方博客
  2. Windows平台摄像头或屏幕RTMP推送:OBS还是SmartPublisher
  3. 哪个游戏盒子里有JAVA_1254: 盒子游戏(Java)
  4. STM32F103和DS1302时钟
  5. USB Type-C引脚排布指南:哪些引脚控制电源传输,数据传输等
  6. 【AI面试】目标检测中one-stage、two-stage算法的内容和优缺点对比汇总
  7. 【git私有服务器-gogs搭建】
  8. 你走过的路,每一步都算数
  9. 列表生成式、生成器迭代器
  10. 5个套路看懂小程序开发