Ajax 同步异步互相转换以及区别详解编程语言

Ajax同步异步的区别:

xmlHttp.open(method,url,async);

async:布尔值,用来说明请求是否为异步模式。是来控制JavaScript如何执行该请求。

异步请求:当async设置为true时,将以异步模式发送请求,JavaScript代码将继续执行而不再等待响应,且必须使用一个事件处理函数来监控请求的响应。

同步请求:当async设置为false时,将以异步模式发送请求,JavaScript将等接收到响应后再继续执行剩余代码。这意味着如果响应时间长,用户在浏览器收到响应前是无法与其交互的。

因此,Ajax开发建议是:使用异步请求来实现数据获取,使用同步请求来实现与服务器之间发送和接收简单的消息。

用同步模式来发送请求(将open()方法的第三个参数设置为false),可以使你在调用send()方法之后马上对其响应进行处理。

这对于想让用户交互等待响应,或希望只接受很少的数据(例如,小于1kb)的应用场景是很有用的。

而对于通常数据量或者较大的数据量而言,最好是使用异步调用

Ajax例子:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Ajax同步异步转换</title> 
<script type="text/javascript" src="js/jquery.min.js"></script> 
</head> 
<body> 
<script> 
//在post/get提交方式的简写: 
            $.post/get("url",{data},function(response){}); 
//默认是异步的! 
 
$.ajax( 
type: "POST/GET", 
url: "", 
data: {}, 
dataType: "json", 
async: true / false, 
success: function(date) { 
} 
); 
//success是之前的写法,现在推荐用.dane() 
//这是最常见的使用ajax方法了。下面实现ajax的同步请求: 
            $.ajax( 
type: "POST/GET", 
data: {}, 
async: false, 
).done(function(date) { 
}); 
//ajax同步请求最常见的就实现ajax请求的结果数据返回。  
//比如在用ajax方法成功得到相应后,我们需要把ajax的返回结果return出去给外部的函数使用这时需要同步。 
function ajax() { 
var backData; 
$.ajax( 
type: ”post”, 
data: {}, 
async: false, //更改为同步  
                ).done( 
function(response) { 
backData = response; 
}); 
return backData; 
} 
var newData = ajax(); 
//此时newData = response; 
//在此过程中注意修改async, 它如果是true( 默认),  
//那么就是在异步的情况下, 这种情况下实现return是不能实现的, 因为异步就说明了程序的执行顺序和效果发生了改变。 修改为同步, 实现返回值。 
//举例ajax异步转同步 
//添加新用户 
function ajaxNew(username){ 
var username; 
var newVal;//添加以后新用户的信息 
                $.ajaxSetup({ //ajax异步转同步 
                    async : false 
});    
$.get("./ajaxAdmin.php?use="+username+"&new=1", 
function(data,status){ 
// alert("内容:"+data+"/n状态: "+status); 
//存储信息 
                        newVal=data; 
}); 
return newVal; 
alert(newVal); 
} 
</script> 
</body> 
</html>

 

  

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/17009.html

(0)
上一篇 2021年7月19日 19:48
下一篇 2021年7月19日 19:48

相关推荐

发表回复

登录后才能评论