$.getJSON异步请求和同步请求
2024-04-13 16:41:42
先看一段代码
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 = ' <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 = ' <img src="/static/images/toolbox/description.png" title="'+data.value+'"/>';$('.tooltip-description [desc='+value+']').append(str);});
等for循环结束后,再将其修改回来,
$.ajaxSettings.async = true;
如此,使getJSON函数各请求之间不会互相影响。
最新文章
- python读取输入流_Python读取实时数据流教程
- 如何寻找属于自己的高富帅和大公司!
- 博耳电力中标上海万国数据中心项目
- 设计模式--6大原则--开闭原则
- 回流,重绘的概念,以及他们的区别?
- 学会用好 Visual Studio Code
- mysql事物 总结_Mysql事务总结
- [转]自动驾驶基础--路径规划
- .NET Core 2.0使用NLog
- 使用Java编写简单的老虎机游戏
- 在一台机器上运行多个ActiveMQ实例
- canvas 动画库 CreateJs 之 EaselJS(上篇)
- 化学方程式作评、数学上成知识百科……那些“别人家的老师”有何特别?
- 全员学习低代码,一汽大众领跑数智化转型背后的秘密
- java手动切换成独立显卡_MacBook如何一键切换显卡 MacBook显卡切换方法【详细介绍】...
- 网站制作---asp操作数据库的一个小例子
- String的replaceAll()用法详解
- 微信小程序,模板+按钮+绑定事件
- 【z变换】3. 逆z变换
- Android P 禁用OTG U盘使用