1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > JavaScript---Ajax和函数回调 异步编程

JavaScript---Ajax和函数回调 异步编程

时间:2022-11-30 05:06:33

相关推荐

JavaScript---Ajax和函数回调 异步编程

一 Ajax 函数的定义:Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),无刷新的从服务器读取数据,可以在不重新加载整个网页的情况下,对网页的某部分进行更新,使网页实现异步更新。

交换过程:

1 创建对象

2 建立连接

3 发送请求

4 接收数据( 调用回调函数)

1 function ajax(json){ 2if(!json.url){return;} 3json = json||{}; 4json.type = json.type||'GET'; 5json.data = json.data||{}; 6json.timeout = json.timeout||10000; 7//1.创建对象 8if(window.XMLHttpRequest){ 9 //chrome FF IE7+10 var oAjax = new XMLHttpRequest();11}else{12 //IE低版本 13 var oAjax = new ActiveXObject('Microsoft.XMLHTTP');14}15switch(json.type.toLowerCase()){16 case 'get':17 //2.建立连接 //是否异步18 oAjax.open('GET',json.url+'?'+json2url(json.data),true);19 //3.发送20 oAjax.send();21 break;22 case 'post': 23 oAjax.open('POST',json.url,true);24 oAjax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');25 oAjax.send(json2url(json.data));26 break;27}28json.loading&&json.loading();29//超过json.timeout 后认为失败 不在请求30var timer = setTimeout(function(){31 json.error&&json.error();32 plete&&plete();33 oAjax.onreadystatechange = null;34},json.timeout);3536//4.接收 37//当网络状态改变的时候38oAjax.onreadystatechange = function(){ //每当 readyState 改变时,就会触发 onreadystatechange 事件39 //网络状态40 if(oAjax.readyState == 4){ //0: 请求未初始化1: 服务器连接已建立2: 请求已接收3: 请求处理中4: 请求已完成,且响应已就绪41 //http状态42 if(oAjax.status>=200&&oAjax.status<300||oAjax.status==304){43 //服务器返回的数据44 clearTimeout(timer);45 json.success&&json.success(oAjax.responseText); //执行回调函数46 plete&&plete();47 }else{48 clearTimeout(timer);49 json.error&&json.error(oAjax.status);50 plete&&plete();51 }52 }53}; 54 }

二,Ajax的调用:

1 ajax({ 2 url:url, 3 data:{ 4//数据接口 7 }, 8 success:function(str){10 var json = eval('('+str+')');11 if(!json.error){12 alert('发表成功');13//成功之后运行的代码18 }19 } 20 });

三 ,异步和回调函数

参考连接 :/blog//12/asynchronous%EF%BC%BFjavascript.html

异步编程:同步模式:后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的

"异步模式":每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。

异步编程的方法:

回调函数:把一个函数f1作为参数传递给另一个函数f2,并在f2中在恰当的时机执行,这个f1就叫回调函数,常见的比如事件函数,定时器,ajax。

事件监听:任务的执行不取决于代码的顺序,而取决于某个事件是否发生。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。