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

第一篇博客,值得纪念,由此开始记录自己的菜鸟程序员之路吧

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

  1. 问题
    $.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为同步传值,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。这样代码将在取值完成后继续执行。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值