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 相关文章推荐
div移动 输入框不能输入的问题
Nov 19 Javascript
jquery 学习之二 属性相关
Nov 23 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
Jan 15 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
Jan 24 Javascript
基于JQuery制作可编辑的表格特效
Dec 23 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
Mar 02 Javascript
javascript 应用小技巧方法汇总
Jul 05 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
Sep 19 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
Oct 23 Javascript
分享纯手写漂亮的表单验证
Nov 19 Javascript
jQuery实现监控页面所有ajax请求的方法
Dec 10 Javascript
angularjs获取到My97DatePicker选中的值方法
Oct 02 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网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
ThinkPHP模板比较标签用法详解
2014/06/30 PHP
php模仿asp Application对象在线人数统计实现方法
2015/01/04 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
仅IE支持clearAttributes/mergeAttributes方法使用介绍
2012/05/04 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
2014/12/29 Javascript
JavaScript获取短信验证码(周期性)
2016/12/29 Javascript
bootstrap中的 form表单属性role="form"的作用详解
2017/01/20 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
vue组件三大核心概念图文详解
2019/05/30 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
2019/06/20 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
python生成随机密码或随机字符串的方法
2015/07/03 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
Python运算符重载详解及实例代码
2017/03/07 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
美国新蛋IT数码商城:Newegg.com
2016/07/21 全球购物
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
大学旷课检讨书
2014/01/28 职场文书
汽车促销活动方案
2014/03/31 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis