ajax笔记03 异步同步请求
2017-05-23 16:05
197 查看
一,异步,
html代码:回调函数内后加载,实现了异步更新。
php代码:
二,同步与异步底层原理分析:
Js的事件处理机制:单线程+事件队列
单线程:从上到下。
事件队列中的任务执行的条件:
1,主线程已经空闲
2,任务满足触发条件:
1,定时函数(延时时间已经达到)。
2,事件函数(特定事件被触发)。
3,ajax的回调函数(服务器端有数据响应)
浏览器自身的循环队列, 单线程执行完毕后,查找事件队列中有无可执行的事件(可执行的触发条件),再继续执行。
html代码:回调函数内后加载,实现了异步更新。
<head> <meta charset="UTF-8" /> <title>Document</title> <script type="text/javascript"> window.onload=function(){ var btn=document.getElementById('btn'); btn.onclick=function(){ var xhr=null; if(window.XMLHttpRequest){ xhr=new XMLHttpRequest(); }else{ xhr=new AActiveXObject('Microsoft.XMLHTTP'); } xhr.open('get','page01.php') xhr.send(null); xhr.onreadystatechange=function(){ if(xhr.readyState==4){ if(xhr.status==200){ var data=xhr.responseText; var obj=JSON.parse(data);/*把data转化成对象*/ var tag='<div><span>'+obj.info+'</span><span>------</span><span>'+obj.message+'</span></div>';/*把对象解析拼接到页面当中.*/ var info=document.getElementById('info');/*得到标签*/ info.innerHTML=tag;/*追加内容到tag中*/ } } } } } </script> </head> <body> <div id="info"> </div> <input type="button" id="btn" value="点击" /> </body> </html>
php代码:
<?php $arr=array("info"=>"hello","message"=>"hi"); $str=json_encode($arr); echo $str; ?>
二,同步与异步底层原理分析:
Js的事件处理机制:单线程+事件队列
单线程:从上到下。
事件队列中的任务执行的条件:
1,主线程已经空闲
2,任务满足触发条件:
1,定时函数(延时时间已经达到)。
2,事件函数(特定事件被触发)。
3,ajax的回调函数(服务器端有数据响应)
浏览器自身的循环队列, 单线程执行完毕后,查找事件队列中有无可执行的事件(可执行的触发条件),再继续执行。
相关文章推荐
- IOS学习之——同步请求、异步请求、GET请求、POST请求
- 同步请求和异步请求的区别
- IOS - IOS之同步请求、异步请求、GET请求、POST请求
- iOS-网络-同步请求、异步请求、GET请求、POST请求
- ExtJs 同步与异步请求
- Http同步请求与异步请求
- Springmvc中 同步/异步请求参数的传递以及数据的返回
- 同步请求和异步请求以及多次点击
- iOS网络开发中的同步、异步和请求队列
- IOS之同步请求、异步请求、GET请求、POST请求
- 网络的同步和异步请求
- Http同步请求和异步请求
- ExtJS12:Ajax发送请求:同步和异步
- 关于HTTP请求、Ajax请求,请求的同步和异步
- 主线程 子线程 同步请求 异步请求
- Ajax(异步请求)和传统(同步请求)区别
- ASP.NET Core使用HttpClient的同步和异步请求
- IOS之同步请求、异步请求、GET请求、POST请求(很不错的总结)
- EXTJS 同步和异步请求
- NSURLConnection同步与异步请求