ajax的同步 和 异步

摘的:

一、

同步和异步的理解实际很简单,同步就代表一个请求对应一个响应对象,只有当这个过程完整个结束后,下一个请求才能进来,

异步就是执行当前请求的同时,其他请求也可以执行,其实概念和多线程执行时差不多的!

二、

ajxa:  不写 async 。则默认是async:true  异步

三、

1 同步:提交请求->等待服务器处理->处理完毕返回这个期间客户端浏览器不能干任何事

2 异步:请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕

1、一心一意:当前只能做一件事,其他事情必须等当前的事情完成,才能继续后面的事情。

2、三心二意:同时可以做多件事情:左手按着空格键,右手可以不断的击打鼠标,眼睛还要同时看着屏幕,很辛苦。

Ajax发送请求时候分为同步和异步:

异步传输方式是用的最多的也是默认的方式,他避免了服务器检索给用户带来的时间延迟。在异步传输时候,它只是在后面悄悄进行着,用户仍旧可以做他做的事情,不会给用户任何的等待的感觉。在传输的数据量较大的时候,服务器检索的时间就更长了,但是用户却不知道,用户仍旧专注于页面上面的操作,根本就不知道服务器都干了些什么,就给用户良好的体验。

同步传输方式却相反,他就好像是刚刚加载页面的那一刻一样,当发出了同步请求之后,浏览器就在等待,等待服务器检索完毕,返回结果。此时,鼠标会变成等待的形状,提醒我们的用户请求还没有相应,您什么也不能做,我们的用户就什么也干不成,能够做的一件事就是——等待……虽然用户已经习惯了等待整改页面的加载,虽然在ajax里面同步请求的时间一般不会大于整个页面加载的时间,但是你要知道什么都不做只是在那里被动等待是多么痛苦的一件事情。所以,这个同步请求要慎重使用……

说到这里,我们不得不提出疑问,既然异步请求这么好,为啥不用异步请求呢?干脆不要同步请求得了。呵呵,你先别说的太急,假如有这么一个情况,我们这一步请求的结果是下一步请求的前提,只有知道这一步请求的结果用户以后所做的才有意义。那么你说应该使用同步请求还是异步请求呢?显而易见,同步请求吧,为了下一步所作的更有意义,我们亲爱的用户等一下又有何妨?

同步请求和异步请求,各有用处,没有好坏之分,只又用的合适不合适的问题

四、

安全性:项目前端做验证,后端也做相应的验证;前端做验证是为了减少服务器压力和增加用户体验,后端做验证才是为了安全。

时间: 2024-12-06 18:34:22

ajax的同步 和 异步的相关文章

Ajax的同步与异步

之前做项目中有遇到就是Ajax的同步与异步的问题,由于Ajax的async默认的设置值为true,属于异步.这个时候就会出现一个问题,就是2段代码如果有关联的话其有一个先后顺序执行的问题,我的下面的代码就是属于这种情况,当时老纠结为什么不是自己预期的效果,后来将async的属性值改为false后,属于同步.运行终于达到了预期的效果,经历过后还得记下来总结经验:

extjs Ext.Ajax.request 同步和异步

ext3.x 不支持ajax的同步请求,ext4就开始支持. 1 Ext.Ajax.request({ 2 url : '', 3 sync:true, 4 params : { 5 name : text.getValue() 6 }, 7 success : function(response, options) { 8 var responseArray = Ext.util.JSON.decode(response.responseText); 9 resultValue=respons

Ajax的同步和异步调用

jquery的async:false,这个属性 默认是true:异步,false:同步. $.ajax({ type: "post", url: "path", cache:false, async:false, dataType: ($.browser.msie) ? "text" : "xml", success: function(xmlobj){ } }); 有了这个属性可以相对的减少代码运行书序问题,但是如果用的太多

ajax中同步和异步

一.async值为true (异步) 当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程 和ajax块后面的脚本(另一个线程) 例如 $.ajax({             type:"POST",            url:"Venue.aspx?act=init",            da

如何理解ajax的同步和异步?

对于如下一段代码: var dataJson = {"ABC":'testABC'}; $.ajax({                url: "/MonkeyServlet",                async:false,                data:dataJson,                contentType: "application/json; charset=utf-8",              

jQuery中ajax的同步与异步

之前一直在写JQUERY代码的时候遇到AJAX加载数据都需要考虑代码运行顺序问题.最近的项目用了到AJAX同步.这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除. 而异步则这个AJAX代码运行中的时候其他代码一样可以运行. jquery的async:false,这个属性 默认是true:异步,false:同步. $.ajax({ type: "post", url: "

Ajax 的同步与异步

1.Ajax的工作原理如图: 2.同步 XMLHttpRequest 对象用于和服务器交换数据. XMLHttpRequest 对象如果要用于 AJAX 的话,其 open() 方法的 async 参数必须设置为 true: xmlhttp.open("GET","ajax_test.html",true); 通过 AJAX,JavaScript 无需等待服务器的响应,而是: 在等待服务器响应时执行其他脚本 当响应就绪后对响应进行处理 3.异步 如需使用 async

ajax的同步和异步问题 (转)

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

ajax的同步和异步问题

当一个页面有异步请求又有同步请求,页面是如何执行.例如,页面有3个同步请求,3个异步请求,是先显示什么,再显示什么? 下面代码里面有4个同步,2个异步,后端设置了2秒后返回数据. window.onload = function(){ ajax('http://127.0.0.1:8080/getasync','get',false,function(res){ console.log('我是同步1'+res) }) ajax('http://127.0.0.1:8080/getasync','