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 动态数据下的锚点错位问题解决方法
Dec 24 Javascript
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
Aug 04 Javascript
javascript 面向对象全新理练之继承与多态
Dec 03 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
Mar 17 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
Nov 28 Javascript
Zabbix添加Node.js监控的方法
Oct 20 Javascript
详解Vue 全局引入bass.scss 处理方案
Mar 26 Javascript
vue-router 源码之实现一个简单的 vue-router
Jul 02 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
May 22 Javascript
微信小程序实现日期格式化和倒计时
Nov 01 Javascript
JS根据Unix时间戳显示发布时间是多久前【项目实测】
Jul 10 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
Aug 20 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 APC缓存配置、使用详解
2014/03/06 PHP
php下Memcached入门实例解析
2015/01/05 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
2016/08/21 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
PHP中SESSION过期设置
2021/03/09 PHP
JavaScript语法着色引擎(demo及打包文件下载)
2007/06/13 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
2014/06/10 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
原生js获取元素样式的简单方法
2016/08/06 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
2017/05/01 jQuery
javascript显示动态时间的方法汇总
2018/07/06 Javascript
vue调用微信JSDK 扫一扫,相册等需要注意的事项
2021/01/03 Vue.js
python的三目运算符和not in运算符使用示例
2014/03/03 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
2016/06/14 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
python小程序实现刷票功能详解
2019/07/17 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
python中的数组赋值与拷贝的区别详解
2019/11/26 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
详解python with 上下文管理器
2020/09/02 Python
优秀学生干部个人的自我评价
2013/10/04 职场文书
高中生家长会演讲稿
2014/01/14 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
环保志愿者活动总结
2014/06/27 职场文书
消费者投诉书范文
2015/07/02 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python
千万级用户系统SQL调优实战分享
2022/03/03 MySQL
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python