js中同步与异步处理方法

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

});

时间: 2024-11-08 21:34:58

js中同步与异步处理方法的相关文章

JS中同步与异步

不讲过多定义,举两个例子说明下 例一: console.log(100); setTimeout(function(){ console.log(200); },1000); console.log(300); 上面代码就是一个异步过程,结果是: 它先打印出100和300,一秒后再打印出200. 例二: console.log(100); alert(200); console.log(300); 上面代码是一个同步过程,它先打印出100,然后确认弹窗后,再打印出300. 由上例子可以知道, 同

js中同步与异步请求方式

异步请求方式: $.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

JS中同步显示并分割输入的数字字符串

题目比较晦涩,来张图来说明要表达的效果: 第一张图的效果就是,用户输入一个数字,上面就显示一个大层,然后显示输入的数字,并把数字用空格按照每四位分割出来.好像在建行的网上银行上面就有这种效果.第二个图的效果就是用户在一个文本框中输入一串数字,然后再光标离开的时候,把数字按照每三位用逗号给分割开来,类似于老外的金钱输入效果. 效果一 同步显示分割分割输入 这种效果中,仿造的就是输入银行卡子类的,故只能够输入数字,需要禁用用户输入的其它字符下面是几种实现方式.先贴上HTML和CSS代码: 1 <ht

Angular.js中处理页面闪烁的方法详解

Angular.js中处理页面闪烁的方法详解 前言 大家在使用{{}}绑定数据的时候,页面加载会出现满屏尽是{{xxx}}的情况.数据还没响应,但页面已经渲染了.这是因为浏览器和angularjs渲染页面都需要消耗一定的时间,这个间隔可能很小,甚至让人感觉不到,这种情况一切正常,但这个时间也可能很长,这时候用户可能会看到满屏尽是{{xxxx}}.这种情况被叫做"Flash Of Unrendered Content (FOUC)(K)?and is always unwanted.".

js中字符串常用熟悉和方法

for(var i=0;i<=450;i++){ for(var j=380-i;j+i<=450 && j+i>=380;j++){ if((i*75+j*80.1)==(i+j)*76){ alert('nan:'+i+'nv:'+j); } } } js中字符串常用熟悉和方法,布布扣,bubuko.com

js中的hasOwnProperty和isPrototypeOf方法

转自:http://www.cnblogs.com/jenry/archive/2010/12/08/1900150.html hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象.不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员. isPrototypeOf:是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false. 实例try: function siteAdmin(nickName,s

js中实现数组的indexOf方法

时间过得很快,转行做开发整一年了,打算出去见见世面.看我现在技术水平能达到什么层次,好确定以后的学习方向,也看看外面的公司都在使用一些什么样的技术. 昨天面了一家公司,对方直接让我答的压轴题.一个简单的算法设计题:熟悉js的同学知道js中字符串有个indexOf方法,现在需要实现数组的indexOf方法.由于本科并非计算机专业,编程方面的一些基本功还很不扎实(比如基础算法掌握程度.算法设计能力),昨天没把题目做对.今天赶紧写出来,以免以后遇上还得再去想.罗里吧嗦一顿,上代码吧还是: 1 Arra

判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解

转载自[脚本之家],原文链接:http://www.jb51.net/article/42864.htm 提醒大家,Object.prototype.toString().call(param)返回的[object class]中class首字母是大写,像JSON这种甚至都是大写,所以,大家判断的时候可以都转换成小写,以防出错 1.typeof(param) 返回param的类型(string) 这种方法是JS中的定义的全局方法,也是编译者们最常用的方法,优点就是使用简单.好记,缺点是不能很好的

在JS中使用COM组件的方法

首先创建一个COM组件,插入一个双接口Itest,在此接口上实现以下三个方法: STDMETHODIMP Ctest::test(void) //无输入输出参数 { // TODO: 在此添加实现代码 MessageBox(NULL,L"test",L"test",MB_OK); return S_OK; } STDMETHODIMP Ctest::test1(BSTR a1) //有一个字符串输入参数 { // TODO: 在此添加实现代码 MessageBox(