黑马程序员技术交流社区

标题: ajax同步与异步 [打印本页]

作者: duanhuilin    时间: 2012-10-30 09:20
标题: ajax同步与异步
什么是同步?什么是异步?他们是怎么回事?都有什么作用?

作者: 李春生    时间: 2012-10-31 00:27
Ajax发送请求时候分为同步和异步:
  异步传输方式是用的最多的也是默认的方式,他避免了服务器检索给用户带来的时间延迟。在异步传输时候,它只是在后面悄悄进行着,用户仍旧可以做他做的事情,不会给用户任何的等待的感觉。在传输的数据量较大的时候,服务器检索的时间就更长了,但是用户却不知道,用户仍旧专注于页面上面的操作,根本就不知道服务器都干了些什么,就给用户良好的体验。
  异步传输方式却相反,他就好像是刚刚加载页面的那一刻一样,当发出了同步请求之后,浏览器就在等待,等待服务器检索完毕,返回结果。此时,鼠标会变成等待的形状,提醒我们的用户请求还没有相应,您什么也不能做,我们的用户就什么也干不成,能够做的一件事就是——等待……虽然用户已经习惯了等待整改页面的加载,虽然在ajax里面同步请求的时间一般不会大于整个页面加载的时间,但是你要知道什么都不做只是在那里被动等待是多么痛苦的一件事情。所以,这个同步请求要慎重使用……
  说到这里,我们不得不提出疑问,既然异步请求这么好,为啥不用异步请求呢?干脆不要同步请求得了。呵呵,你先别说的太急,假如有这么一个情况,我们这一步请求的结果是下一步请求的前提,只有知道这一步请求的结果用户以后所做的才有意义。那么你说应该使用同步请求还是异步请求呢?显而易见,同步请求吧,为了下一步所作的更有意义,我们亲爱的用户等一下又有何妨?
  同步请求和异步请求,各有用处,没有好坏之分,只又用的合适不合适的问题。呵呵O(∩_∩)O~
作者: 郭会茹    时间: 2012-10-31 10:29
同步需要等待返回结果才能继续,异步不必等待,一般需要监听异步的结果
同步是在一条直线上的队列,异步不在一个队列上 各走各的
作者: 郑鹏    时间: 2012-10-31 11:25
郭会茹 发表于 2012-10-31 10:29
同步需要等待返回结果才能继续,异步不必等待,一般需要监听异步的结果
同步是在一条直线上的队列,异步不 ...

这个简洁,建议按这个理解就可以,不需要理解太深的!我平时就把异步理解成多线程同时进行,线程之间互不干扰,而同步是就像是排队买票一样,进程必须的等待上一个进程完了的时候,这个才可以开始运行




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2