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

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

js中同步与异步处理的方法和区别总结_javascript技巧的相关文章

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

 若要在使用ajax请求后处理发送请求返回的结果,最好使用同步请求,下面为大家介绍下js中同步与异步处理的方法和区别,感兴趣的朋友不要错过 在使用异步请求时,有时需要将异步请求的结果返回给另一个js函数,此种情况下会出现未等异步请求返回请求结果,该发送请求所在js函数已经执行完后续操作,即已经执行return ,这样会导致return的结果为空字符.    总结:若要在使用ajax请求后处理发送请求返回的结果,最好使用同步请求.    例如:以下例子会出现返回结果不正确的情况,因为ajax异步请

js apply/call/caller/callee/bind使用方法与区别分析_javascript技巧

一.call 方法 调用一个对象的一个方法,以另一个对象替换当前对象(其实就是更改对象的内部指针,即改变对象的this指向的内容). Js代码 call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 参数 thisObj 可选项.将被用作当前对象的对象. arg1, arg2, , argN 可选项.将被传递方法参数序列. 说明 call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对

js正则表达式中test,exec,match方法的区别说明_javascript技巧

js正则表达式中test,exec,match方法的区别说明 test test 返回 Boolean,查找对应的字符串中是否存在模式.var str = "1a1b1c";var reg = new RegExp("1.", "");alert(reg.test(str)); // true exec exec 查找并返回当前的匹配结果,并以数组的形式返回.var str = "1a1b1c";var reg = new R

关于JS中match() 和 exec() 返回值和属性的测试_javascript技巧

语法: exec() : RegExpObject.exec(string) match() : stringObject.match(string) stringObject.match(regexp) 知识点: exec() 是RegExp对象的方法,而 match() 是String对象的方法. 都会返回包含第一个匹配项信息的数组:或者在没有匹配项的情况下返回null. 返回的数组虽然是Array 的实例,但包含两个额外的属性:index 和 input.其中,index 表示匹配项在字符

JS中mouseover和mouseout多次触发问题如何解决_javascript技巧

问题描述 我希望当鼠标移动到id1上的时候,id2显示,当鼠标离开id1的时候,id2显示.问题如下: 1.当鼠标从id1上移动到id2上的时候,id由有显示变为不显示,然后变为显示 2.当鼠标从id2上移动到id1上的时候, id2有显示变为不显示,然后变为显示 我希望的是当鼠标在id1或者id2上移动的时候,id2一直显示,不发生变化. <script type="text/javascript" src="https://code.jquery.com/jquer

JS中检测数据类型的几种方式及优缺点小结_javascript技巧

1.typeof 用来检测数据类型的运算符 typeof value 返回值首先是一个字符串,其次里面包含了对应的数据类型,例如:"number"."string"."boolean"."undefined"."object"."function" 局限性: 1)typeof null ->"object" 2)检测的不管是数组还是正则都返回的是"ob

JS中Iframe之间传值及子页面与父页面应用_javascript技巧

在js中,我们时常用到用iframe做系统框架,在子页面也,父页面之间的值传递是一个问题,下面是js获取父窗体和子窗体的对象js: 1.在iframe子页面中获取父页面的元素: a>window.parent.document这个是获取父页面document中的对象: b>如果要获取父页面js中的方法:window.parent.xxxx():xxxx()为方法: 2.在父页面中获取iframe子页面中的元素: a> 复制代码 代码如下: var child = document.get

js中的事件捕捉模型与冒泡模型实例分析_javascript技巧

本文实例讲述了js中的事件捕捉模型与冒泡模型.分享给大家供大家参考. 具体实现方法如下: 实例1: 复制代码 代码如下: <html> <head> <script type="text/javascript">  window.onload = function(){   document.getElementById('par').addEventListener('click',function() {alert('par');},true);

JS中自定义定时器让它在某一时刻执行_javascript技巧

有时,处于需求的原因,我们需要在JS中写一个方法,然后让它在某一时刻执行,即需要在JS中写一个定时器,当时间达到要求时间时,需要执行的方法自动执行,下面小编简单说一下我是怎么实现的 var tMinutes=0; var tHours=0; var go; function dingshi(hours,minutes){ tHours = hours; tMinutes = minutes; go=setInterval(run,3000); } function run(){ var date