`

Ajax同步和异步调用

    博客分类:
  • Ajax
阅读更多
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同步或异步流程图

    AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器交换...理解并熟练运用AJAX的同步和异步模式,是提升Web应用性能和交互性的重要手段。

    AJAX异步调用代码

    综上所述,这段AJAX异步调用代码示例不仅展示了前后台数据同步的基本流程,还涉及了DOM操作、错误处理等多个重要知识点,对于理解和应用AJAX技术具有较高的参考价值。在日常开发中,灵活运用这些知识,可以有效提升...

    用法 XMLHttpRequest的用法 ajax同步和异步的区别

    ### XMLHttpRequest的用法及AJAX同步与异步的区别 #### 一、XMLHttpRequest简介 `XMLHttpRequest`对象是实现客户端与服务器端异步交互的重要工具之一。它允许JavaScript执行HTTP请求,无需重新加载整个网页即可从...

    浅析异步调用的ppt

    Web服务的异步实现主要涉及两种方式:同步调用和异步调用。异步调用在服务器端能够提高资源利用率,避免因为单个请求阻塞其他请求的处理。在客户端,使用异步调用可以保持用户界面的响应性。 【Remoting】是.NET ...

    Ajax简单异步调用

    Ajax(Asynchronous ...总之,Ajax简单异步调用是Web开发中的重要技术,它通过局部刷新和后台通信,实现了更加流畅和高效的用户交互体验。了解并熟练运用Ajax,对于提升网站或应用的性能和用户体验具有重要意义。

    Ajax异步与同步方法封装的js文件

    调用方法:1 将下载好的Ajax js文件引用到页面 代码如下:&lt;script src &quot; js MyAjax js&quot; type &quot;text javascript&quot;&gt;&lt; script&gt; 2 调用方法:(1)异步: MyAjax &quot; 要调用的方法...

    javascript发送ajax请求,获取返回值res,async 同步/异步

    javascript发送ajax请求,获取返回值res,async 同步/异步 var res = sendRequest({ url : "1.php", //necessary method : "post", params : { param1 : "123", param2 : "234" }, async : false });

    asp.net异步调用后台方法提交

    在ASP.NET开发中,为了提升用户体验和页面响应速度,异步调用后台方法是一种常见的技术手段。本文将详细介绍如何在ASP.NET中实现异步调用后台方法,并解释相关的代码实现细节。 #### 一、异步调用背景与优势 异步...

    .net异步调用后台函数

    异步调用虽然能提升性能,但也需要注意一些问题,如资源管理、异常处理、同步原语(如锁)的使用等。应确保所有异步方法都正确地完成了,避免“悬挂”异步操作,并适当地处理可能出现的异常。 8. **性能优化**: ...

    尚筹网-加餐-Ajax的同步和异步请求1

    本文将深入探讨Ajax的同步和异步请求,以及它们的工作原理。 ### 1. 异步工作方式 **1.1 图解** 在异步模式下,Ajax请求发送后,浏览器不会等待服务器的响应,而是继续执行后续的代码。当服务器返回响应时,会调用...

    ajax异步调用局部刷新

    ajax ,异步或同步请求,控制action返回的值,并处理

    ajax 同步请求和异步请求的差异分析

    在JavaScript的世界里,AJAX(Asynchronous ...总的来说,理解AJAX的同步和异步请求的区别是开发高效、用户友好的Web应用的关键。选择合适的请求类型,结合良好的错误处理策略,可以大大提高应用程序的性能和用户体验。

    常用Ajax操作

    将Ajax同步和异步调用封装成了两个普通的javascript方法,使用非常方便

    php+ajax异步调用 三级联动

    这里我们讨论的主题是"PHP+AJAX异步调用三级联动",这是一个常见于表单选择框或者下拉菜单的功能,通常用于地区选择、产品分类等场景,用户在选择一级选项后,二级和三级选项会根据一级的选择动态加载,提供更精确的...

    AQuery 异步调用

    **AQuery 异步调用详解** 在移动开发中,特别是在Android平台,UI线程的流畅性至关重要。AQuery(Android Query)是一个轻量级、高效的库,它为Android提供了类似jQuery的API,用于简化异步操作,如网络请求、图片...

    详解socket阻塞与非阻塞,同步与异步、I/O模型

    同步和异步只关注客户端的调用机制,而阻塞和非阻塞则关乎服务端的处理方式。同步与异步的区分并不依赖于阻塞或非阻塞,它们可以结合使用。例如,客户端可以发起异步请求,然后服务端处理请求时可能采用阻塞或非阻塞...

    程序同步与异步的区别

    ### 程序同步与异步的区别...通过以上解释和示例,我们可以清楚地看到同步与异步操作之间的主要区别及其在实际编程中的应用。理解这些基本概念有助于开发者根据具体需求选择合适的编程模式,提高程序的性能和用户体验。

    浅谈js的ajax的异步和同步请求的问题

    实现Ajax同步请求的方式是通过设置`async`属性为`false`。在jQuery中,可以通过AJAX调用的选项中设置`async: false`来达到这一目的。然而,需要注意的是,在实际开发中,推荐使用异步模式,因为同步模式会阻塞浏览器...

    Jquery Ajax解析XML数据(同步及异步调用)简单实例

    本文将介绍如何使用JQuery的Ajax功能来解析XML数据,包括同步调用和异步调用两种方式,并提供了一个简单的实例。 ### 同步调用与异步调用 在使用JQuery Ajax时,我们首先需要决定是采用同步请求还是异步请求。异步...

    ajax实现异步通信

    **Ajax 实现异步通信详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新,大大提升了用户...

Global site tag (gtag.js) - Google Analytics