今天小咸儿来个大家分享一下Ajax的同步和异步。
AJAX
概念
Ajax中根据async(异步)值的不同分为同步(async=false)和异步(async=true)两种执行方式。
同步:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。
用户填写所有信息后,提交给服务器,等待服务器的回应(检验数据),是一次性的。信息错误则需要重新填写!
异步:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。
当用户填完一条信息后,该信息会自动向服务器提交,然后服务器响应客户端,在此过程中,用户依然在填写表格的信息,即向服务器请求多次,节省了用户的时间,提高了用户的体验。
请求
同步请求:提交请求–>等待服务器处理–>处理完毕返回(这个期间客户端浏览器不能干任何事情)
异步请求:请求通过事件触发–>服务器处理(这是浏览器仍然可以做其他事情)–>处理完毕
小例子:打电话(同步),发消息(异步)
异步建立
- A:new一个XHR对象(整理一篇博客,借鉴 XHR对象)
- B:调用open方法
- C:send一些数据
- D:对过程进行监听,来知道服务是不是正确的做出了响应,接着可以做一些其他的事情
结语
async是一个布尔值,如果是异步通信方式,客户机就不等待服务器的响应;如果是同步方式,客户机就要等到服务器返回消息后采取执行其他操作。我们需要根据实际需要来指定同步方式,在某些页面中,可能会发出多个请求,甚至是有组织有计划有队形大规模的高强度的request,而后一个是会覆盖前一个的,这个时候当前要指定同步方式。