使用JQuery实现同步请求
背景
现在工作的时候,绝大部分场景使用的是异步请求,可以使用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;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。