js中同步与异步处理的方法和区别总结


Posted in Javascript onDecember 25, 2013

在使用异步请求时,有时需要将异步请求的结果返回给另一个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 ; 
}

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

2 同步请求方式
$.ajax({ 
url : 'your url', 
data:{name:value}, 
cache : false, 
async : false, 
type : "POST", 
dataType : 'json/xml/html', 
success : function (result){ 
do something.... 
} 
});
Javascript 相关文章推荐
Javascript 更新 JavaScript 数组的 uniq 方法
Jan 23 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
May 21 Javascript
window.onload与$(document).ready()的区别分析
May 30 Javascript
浅谈javascript函数式编程
Sep 06 Javascript
JS更改select内option属性的方法
Oct 14 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
Jul 27 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
Aug 25 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
Sep 28 Javascript
微信小程序 scroll-view实现锚点滑动的示例
Dec 06 Javascript
vue2 前端搜索实现示例
Feb 26 Javascript
JS使用cookie保存用户登录信息操作示例
May 30 Javascript
js实现打字小游戏
Dec 17 Javascript
在javascript中实现函数数组的方法
Dec 25 #Javascript
js 时间格式与时间戳的相互转换示例代码
Dec 25 #Javascript
js中for in的用法示例解析
Dec 25 #Javascript
在javascript中执行任意html代码的方法示例解读
Dec 25 #Javascript
jquery easyui combox一些实用的小方法
Dec 25 #Javascript
关闭浏览器时提示onbeforeunload事件
Dec 25 #Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
Dec 25 #Javascript
You might like
php通过获取头信息判断图片类型的方法
2015/06/26 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
angular十大常见问题
2017/03/07 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
React中ES5与ES6写法的区别总结
2017/04/21 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
详解vue-router的导航钩子(导航守卫)
2020/11/02 Javascript
Python创建文件和追加文件内容实例
2014/10/21 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
python采集微信公众号文章
2018/12/20 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
C#面试题
2016/05/06 面试题
大学生专业个人学习的自我评价
2013/10/26 职场文书
股东合作协议书范本
2014/04/14 职场文书
竞选班委演讲稿
2014/04/28 职场文书
2015年办公室文秘工作总结
2015/04/30 职场文书
MySQL基础(一)
2021/04/05 MySQL
教你用eclipse连接mysql数据库
2021/04/22 MySQL
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python
Python实现位图分割的效果
2021/11/20 Python
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android
Go语言编译原理之源码调试
2022/08/05 Golang