博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js中的同步与异步
阅读量:4695 次
发布时间:2019-06-09

本文共 963 字,大约阅读时间需要 3 分钟。

同步:提交后等待服务器的响应,接收服务器返回的数据后再执行下面的代码   

异步:与上面相反,提交后继续执行下面的代码,而在后台继续监听,服务器响应后有程序做相应处理,异步的操作好处是不必等待服务器而可以继续在客户端做其它事情。

可以简单的理解认为同步是单线程的异步是多线程的          

在使用异步请求时,有时需要将异步请求的结果返回给另一个js函数,此种情况下会出现未等异步请求返回请求结果,该发送请求所在js函数已经执行完后续操作,即已经执行return ,这样会导致return的结果为空字符。

所以:若要在使用ajax请求后处理发送请求返回的结果,最好使用同步请求。

这个例子会出现返回结果不正确的情况,因为ajax异步请求还未执行完,函数已经执行return了,

function fn(){

var result = " ";
$.ajax({
url : 'your url',
data:{name:value},
cache : false,
async : true,
type : "POST",
success : function (data){
do something....
result = ....
}
// 对ajax中返回的data进行处理 ,也会出错
return result ;

 

异步请求方式: 

$.ajax({
url : 'your url',
data:{name:value},
cache : false,
async : true,
type : "POST",
dataType : 'json/xml/html',
success : function (result){
do something....
}
}); 
同步请求方式 
$.ajax({
url : 'your url',
data:{name:value},
cache : false,
async : false,
type : "POST",
dataType : 'json/xml/html',
success : function (result){
do something....
}
}); 

转载于:https://www.cnblogs.com/lxl0419/p/5778845.html

你可能感兴趣的文章
AVAudioPlayer简易封装
查看>>
swappiness参数设置与内存交换
查看>>
修改es最大返回结果数
查看>>
Android实战技巧之六:PreferenceActivity使用详解
查看>>
SUSE12 网卡配置、SSH远程配置、解决CRT密钥交换失败,没有兼容的加密程序
查看>>
平台网盘
查看>>
原生ajax jq跨域
查看>>
在MySQL中操作日期和时间
查看>>
WebService&CXF
查看>>
hibernate框架环境搭建与使用
查看>>
不同大小的字体底部对齐
查看>>
@ControllerAdvice注解的使用
查看>>
pfx2pvk
查看>>
python3 生成随即激活码
查看>>
Codeforces 260 A - A. Laptops
查看>>
Java中System类的相关应用
查看>>
spring mvc(注解)上传文件的简单例子
查看>>
【转】Zend_Json学习
查看>>
洛谷 P3698 [CQOI2017]小Q的棋盘 解题报告
查看>>
洛谷 P1407 [国家集训队]稳定婚姻 解题报告
查看>>