0

0

同步请求和异步请求的区别详解

小云云

小云云

发布时间:2018-03-21 13:12:45

|

8343人浏览过

|

来源于php中文网

原创

先解释一下同步和异步的概念
同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。
同步通信方式与异步通信的概念
同步通信方式要求通信双方以相同的时钟频率进行,而且准确协调,通过共享一个单个时钟或定时脉冲源保证发送方和接收方的准确同步,效率较高;
异步通信方式不要求双方同步,收发方可采用各自的时钟源,双方遵循异步的通信协议,以字符为数据传输单位,发送方传送字符的时间间隔不确定,发送效率比同步传送效率低。
使用者用于调用WEB服务的通信选择:同步或异步。
使用者可以同步或异步实现服务调用。从使用者的观点来看,这两种方式的不同之处在于:
同步——使用者通过单个线程调用服务;该线程发送请求,在服务运行时阻塞,并且等待响应。
异步——使用者通过两个线程调用服务;一个线程发送请求,而另一个单独的线程接收响应。
术语同步 和异步 经常与顺序 和并发 混淆了。后面的这两个术语与执行单独的任务必须遵循的顺序有关,而同步和异步 与线程执行单个任务(如调用单个服务)的方式有关。理解同步和异步调用之间的不同的一种很好的方法是考虑崩溃恢复的后果:
同步——如果使用者在服务运行的过程中阻塞时崩溃了,当它重新启动时,将无法重新连接到正在进行的调用,所以响应丢失了。使用者必须重复调用过程,并且期望这次不会崩溃。
异步——如果使用者在发送了请求之后等待响应时崩溃了,当它重新启动时,可以继续等待响应,所以响应不会丢失。
崩溃恢复不是同步和异步调用之间的唯一不同,但是如果您尝试确定某个调用采用哪一种方式,请考虑每一种调用如何处理崩溃恢复,这通常可以给您一个很好的答案.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
在 Java Web 开发中使用 Ajax 时,重要的是完整理解同步 和异步 通信模型的区别(请参阅 参考资料)。对异步通信模型支持的缺乏,会对客户端开发、与 Web 框架的集成、标记库的使用、IDE 的使用以及线程的行为有影响。
在同步请求/响应通信模型中,总是浏览器(与 Web 服务器、应用服务器或 Web 应用程序相对)发起请求(通过 Web 用户)。接着,Web 服务器、应用服务器或 Web 应用程序响应进入的请求。在处理同步请求/响应对期间,用户不能继续使用浏览器。
在异步请求/响应通信模型中,浏览器(通过 Web 用户)到 Web 服务器、应用服务器或 Web 应用程序的通信(以及反过来)是解耦的。在异步请求/响应对的处理中,Web 用户在当前异步请求被处理时还可以继续使用浏览器。一旦异步请求处理完成,异步响应就被通信(从 Web 服务器、应用服务器或 Web 应用程序)回客户机页面。典型情况下,在这个过程中,调用对 Web 用户没有影响;他们不需要等候响应。
Jquery ajax 中提交数据可以用同步与异步1、同步与异步之间究竟有什么不同呢?、2、在什么情况下使用呢? 同步:提交请求->等待服务器处理->处理完毕返回这个期间客户端浏览器不能干任何事
异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕 一、我的理解: 1、一心一意:当前只能做一件事,其他事情必须等当前的事情完成,才能继续后面的事情。2、三心二意:同时可以做多件事情:左手按着空格键,右手可以不断的击打鼠标,眼睛还要同时看着屏幕,很辛苦。 二、请看下面这段脚本: function

ValidateClick()
{ var areaNo=$("#<%=drpList.ClientID %>").val(); if(areaNo) { alert("请选择"); return false; } $.ajax({
cache:"False",
type:"POST", (A)//async: false, 【(A)】
url:"Validate.ashx",
data:$("#form1").serialize(), 
success:function(o)
{ 
if(o=="ERROR") { alert("输入错误!"); return false;} 
else if(o=="OK")
{ alert("正确!");return true; } 
else
{ alert("其他错误!"); return false;}
},
error:function(xhr, ajaxOptions, thrownError)
{ alert("网络异常,稍后重试!"); return false; }
}); // 【(B) 】 //alert("这里");return true;}

 在(A)处:默认未true,表示使用异步进行传输, 当async: true时:我们把数据用POST提交数据到url页面后,会同时执行【(B) 】处的方法或者 函数等,不管(A)处是否已经返回结果,(B)已经执行了,当(A)中返回结果时,就根据指定的if来弹出提示, 当async: false时:这个时候就必须等待(A)处返回结果,再执行if判断语句,判断完成之后,在接着执行(B)处的函数。

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

光速学会docker容器
光速学会docker容器

共33课时 | 1.9万人学习

时间管理,自律给我自由
时间管理,自律给我自由

共5课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号