ajax的同步和异步问题

原创 2011年11月11日 23:31:36

经常说ajax是异步执行的技术,但是今天才知道异步和同步的区别。理解很深刻,来源于最近来的一个小项目。


    <script type="text/javascript"> 
    var flag=0;
    var i=0;
    var title;
	$.ajax({
   		url: "showNewsAction.action",
   		type:'jsonp',
   		async: false,
   		success: function(msg){
			for(i=0;i<msg.toString().length;i++){
	     		$("#shopping_list").append("<li><a href="+"http://localhost:8080/HCF/showNews.jsp?id="
	     			+msg.news[i].id
	     			+">"
	     			+i
	     			+msg.news[i].id
	     			+msg.news[i].title
	     			+msg.news[i].author
	     			+msg.news[i].date.toString()
	     			+"</a></li>");
	     	}	
		}
	});

</script>
<script type="text/javascript">
	$("#shopping_list li").quickpaginate({ perpage:5, pager : $("#shopping_list_counter") });
</script>


async默认的设置值为true,这种情况为异步方式,当ajax发送请求后,在等待server端返回的数据的过程中,程序会继续执行ajax块后面的代码,直到服务器返回正确的结果才会去执行success的方法,也就是说程序会从两个方向去执行脚本。在这个程序里,执行是这样的,执行ajax的success方法,另一方面执行脚本2。显然,不能得到想要的结果。因为,执行顺序的问题。

当把asyn设为false时,这时ajax的请求时同步的。这样的话,只有ajax请求成功之后,才会执行脚本2。也就是说,这个时候,ajax的success方法没有执行的情况下,脚本2是不执行的,因为这个时候是async: false,即同步的。



Ajax中什么时候用同步,什么时候用异步?

Ajax中什么时候用同步,什么时候用异步?         AJAX中根据async的值不同分为同步(async = false)和异步(async = true)两种执行方式;...
  • xiegongmiao
  • xiegongmiao
  • 2017年10月12日 17:19
  • 4056

Ajax 与异步数据传输

基本概念Ajax 全称是异步的 JavaScript 和 XML 。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行...
  • Faremax
  • Faremax
  • 2017年03月20日 16:05
  • 1978

Ajax同步与异步优缺点与使用

无论是JQuery的Ajax或是原生的Ajax,他们在发送请求的时候都有同步和异步之分。 一.什么是同步请求:(false)        同步请求即是当前发出请求后,浏览器什么都不能做,必须...
  • palette_
  • palette_
  • 2017年05月19日 18:06
  • 2427

$.ajax同步/异步(async:false/true)

虽然说ajax用来执行异步请求的比较多,但有时还是存在需要同步执行的情况的。 比如:我需要通过ajax取执行请求以返回一个值,这个值在ajax后面是需要使用到的,这时就不能用异步请求了。这时候就需要...
  • u014316363
  • u014316363
  • 2015年01月07日 13:49
  • 8124

Ajax实现异步交互

试想一个场景,你正在某个网站上上传几张照片,分别有几个上传的地方,如果上一张没有传完,你就不能点击下一个上传按钮,这样的等待体验是不是很糟糕呢。再试想一个场景,当你在淘宝购物的时候,如果点击了某个提交...
  • qq_35718410
  • qq_35718410
  • 2016年08月04日 09:42
  • 1808

web中的同步请求和异步请求的差别(重点是ajax中的同步与异步)

此前,对于web中同步请求和异步请求的概念模糊不清,不过对于这样的知识盲点,不去克服的话都不好意思说自己是一名前端开发人员了[捂脸][捂脸]。还好,功夫不负有心人。通过自己的方式终于让自己理解了,这两...
  • u014516981
  • u014516981
  • 2016年11月20日 19:53
  • 7325

ajax如何变为异步请求

$.ajax({ url:'', type:'', data:{} }); 只需把type设置为ASYNC
  • XW_Sir
  • XW_Sir
  • 2018年01月12日 22:18
  • 16

ajax 同步和异步的区别

举个例子:普通B/S模式(同步)AJAX技术(异步)同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事...
  • fly_buf
  • fly_buf
  • 2011年06月09日 23:03
  • 30650

AJAX中同步和异步的区别和使用场景

AJAX中根据async的值不同分为同步(async = false)和异步(async = true)两种执行方式;在W3C的教程中推荐使用异步执行; 下面来区别一下同步和异步有什么不同: 异步...
  • shenlei19911210
  • shenlei19911210
  • 2014年12月16日 19:01
  • 10367

Ajax之同步请求和异步请求的区别

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 用户填写所有信息后,提交给服务器,等待服务器的回应(检验数据),是一次性的。信息错误又要重新填写! 异步是指:发送...
  • xiaotao_css
  • xiaotao_css
  • 2017年04月25日 18:34
  • 6466
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ajax的同步和异步问题
举报原因:
原因补充:

(最多只允许输入30个字)