- 66浏览
- 2023-01-29
现在工作的时候,绝大部分场景使用的是异步请求,可以使用ajax fetch axios等技术实现;
其中最常用的是jquery的ajax方法;
$.ajax({
url: "XXX",//请求路径
data: { param1: jsonObj1, params2: str2... },
type: "POST",//GET
//dataType: "JSON",//需要返回JSON对象(如果Ajax返回的是手动拼接的JSON字符串,需要Key,Value都有引号)
success: function(resp) {
//处理 resp.responseText;
},
error: function(a, b, c) {
//a,b,c三个参数,具体请参考JQuery API
}
})
但是在某些场景下,我们需要同步请求,比如我在构建Grid控件的时候,动态列的情况;
一旦Grid对象创建完成,渲染到浏览器的时候,如果没有配置列,或者列配置选项错误,那么这个页面会提示错误,即Grid没有成功渲染;
因此这里我们需要在new Grid之前.首先获取动态列数据,进行列模型的构建;
我们这样子做:给出一个简单例子
var cmObjStr = eval("(" + $.ajax({
url: "XXX",
async: false,//关键是这个参数 是否异步请求=>false:使用同步请求
type: "POST",
data: {
params1: value1
}
}).responseText + ")");
这里返回的是列模型所需要的列信息,还需要手动创建列模型对象;
总结一下:所有支持异步请求的方法,需要看相关的文档API,看是否存在async这个参数;设置async为false为同步请求,只有请求返回了,浏览器线程才会执行下一行的JS;
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。