您的位置:首页 > Web前端 > JavaScript

AJAX初识+async参数的简单使用

2016-10-18 21:59 183 查看
第一篇博客,值得纪念,由此开始记录自己的菜鸟程序员之路吧

这几天开始做进公司后的第二个项目,由于目前java代码基础薄弱,javascript基本看不懂,在做第一个项目的时候完全没有自己的思路,完全就是照搬照做,不过这也让我熟悉了系统的代码框架和基本逻辑。第二个项目最近刚刚开始,由于是物流行业,迎接双11,压力很大,所有问题基本上都是自己一个人解决,今天出现的问题是在做一个在前台界面用AJAX的$.post()方法传值给后台,操作数据库取值,通过判断取回的值选择执行下一步的功能。

问题

$.post()方法未执行结束,方法之后的代码块已经执行,导致无法选择执行哪块代码。

2.出现原因

未设置async的值,其默认设置为True,也就是异步传值,当代码通过HTTP请求去执行后台取值的方法的同时,其方法后的代码已经执行。

3.解决方法

js初始化设置async参数为false,在方法中设置也可以,这里通过代码举例一下

--初始化--
$(document).ready(function(){
...
...
$.ajaxSetup({
async: false
});
})

--请求操作--
$.ajax({								url:"${dynamicURL}/*.action",
data:dataObj,
dataType:"text",
success:function(data){
if(data.actionErrors && data.actionErrors[0]){
$.messager.alert('<s:text name="message.failed"/>', data.actionErrors[0]);
}else if(data!=null&&data!=""){            $.messager.alert('<s:textname="message.failed"/>', data);
}else{
$.messager.alert('<s:text name="message.success"/>', '<s:text name="message.revoke.success"/>');							$("#tt").datagrid("clearChecked");
}
doSearch();
}
});


通过这种设置,AJAX为同步传值,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。这样代码将在取值完成后继续执行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript ajax
相关文章推荐