ajax函数(同步方式): function queryIsSameLevel(){ var ID_MT_OPERATIONTYPE = document.getElementById('ID_MT_OPERATIONTYPE').value; var url = '<%=request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() %>' var executeURL = url+"/common/mt/isSameLevel.do?id="+ID_MT_OPERATIONTYPE; var xmlhttp; if (window.XMLHttpRequest){ xmlhttp= new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } //同步方式 xmlhttp.open("POST",executeURL,false); xmlhttp.send(); if(xmlhttp.readyState==4 && xmlhttp.status==200){ //alert("你大爷" + xmlhttp.responseText); responseTextVal = xmlhttp.responseText; responseTextVal = responseTextVal.replace('{',''); responseTextVal = responseTextVal.replace('}',''); var index = responseTextVal.indexOf(":"); responseTextVal = responseTextVal.substring(index+1); responseTextVal = responseTextVal.replace('"',''); responseTextVal = responseTextVal.replace('"',''); } } 异步方式: function queryIsSameLevel(){ var ID_MT_OPERATIONTYPE = document.getElementById('ID_MT_OPERATIONTYPE').value; var url = '<%=request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() %>' var executeURL = url+"/common/mt/isSameLevel.do?id="+ID_MT_OPERATIONTYPE; var xmlhttp; if (window.XMLHttpRequest){ xmlhttp= new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } //异步方式 xmlhttp.open("POST",executeURL,true); xmlhttp.send(); //异步方式添加回调函数 xmlhttp.onreadystatechange=function(){ if(xmlhttp.readyState==4 && xmlhttp.status==200){ //alert("你大爷" + xmlhttp.responseText); responseTextVal = xmlhttp.responseText; responseTextVal = responseTextVal.replace('{',''); responseTextVal = responseTextVal.replace('}',''); var index = responseTextVal.indexOf(":"); responseTextVal = responseTextVal.substring(index+1); responseTextVal = responseTextVal.replace('"',''); responseTextVal = responseTextVal.replace('"',''); } } } 如果有一个方法B()调用上述两个方法queryIsSameLevel(), 异步方式:有可能回调函数的执行比B函数中的代码执行要晚 同步的方式:等方法queryIsSameLevel()全部执行完后再去执行方法B()中的代码 同步方式没有回调函数,执行完send()方法后就进行状态的判断 参考资料: http://hi.baidu.com/iamgongjunhao/blog/item/e4357a501ae429748535242f.html
详细解决方案
Ajax同步跟异步调用
热度:282 发布时间:2012-09-01 09:33:03.0
相关解决方案
- (Struts2+JSON+Ajax) XMLHttpRequest ==500如何解决
- 。各位大神,小弟有个简单的有关问题,就是小弟我用struts+ajax+juery+json时为何总是不进入action啊 配置文件如上
- ajax 多值 jsp 急
- ajax responsetext 替空值,想不通。
- springmvc jquery ajax 提交复杂对象,415异常解决办法
- jquery ajax select解决方法
- Ajax 更新商品列表下一页,页面不在脑袋开始
- CAPTCHA 模块中 ajax form 导致CAPTCHA session reuse attack detected异常,解决方法
- ajax Post 一直返回的是error ,为啥
- struts2 ajax 上拉框联动有关问题
- AJAX 学习过程中的有关问题
- servlet+jquery1.4.2(ajax error?)解决方案
- jQuery.ajax()请求struts2数据 回到data值了undefined
- 扭结,AJAX WEB UI库选型
- 求大神解决偏题 - jquery ajax
- AJAX 传递数据如何样才可以是 json
- ajax 调用很慢解决办法
- ajax 拓扑图 实现,该如何解决
- struts2+jquery+ajax 回调函数没反应啊请们帮忙看看啊 跪谢
- ajax 怎么实现文件下载
- 使用$.ajax()异步无刷新请求servlet无反应解决方法
- struts2+ajax+oracle实现目录树,该怎么解决
- jquery- ui ajax 下拉列表框解决思路
- JSON,AJAX
- 求个php+ajax+easyUI datagrid的简略完整的demo
- 验证用户名是否存在。Ajax+Action如何写了
- Struts Ajax 有关问题,求教
- $.ajax({})如何返回一个boolean,答案,多谢大神
- :前台和后台开发有啥区别?还有css、html、ajax、js、jquery都有什么区别
- jquery ajax+json(插件) 提交数据,让人捉摸不透的是:【部分中文显示问号】,该怎么解决