同步和异步:
同步:执行一个操作之后,等待结果,然后才继续执行后续的操作。
异步:执行一个操作后,可以去执行其他的操作,然后等待通知再回来执行刚才没执行完的操作。生活中的同步便是异步.
阻塞和非阻塞:
阻塞:进程给CPU传达一个任务之后,一直等待CPU处理完成,然后才执行后面的操作,线程会被挂起。
非阻塞:进程给CPU传达任我后,继续处理后续的操作,隔断时间再来询问之前的操作是否完成。这样的过程其实也叫轮询。
从进程级通信的维度讨论时, 阻塞和同步(非阻塞和异步)就是一对同义词 且需要针对发送方和接收方作区分。
ajax概念的引入:
js的异步和xml的结合。
比如点赞先在页面更新并没有立刻访问处理层和持久层
异步刷新:只刷新页面当中需要修改的地方。其他地方不刷新。
ajax的两种实现:
js:
XmlHttpRequest对象: 函数:open(请求方式,请求链接,是否为异步处理):与服务端建立连接。 send():发送数据 注:如果是get请求发送时直接发送null,post需要把参数值放里边。 setRequestHeader(header,value):设置请求头信息。 get不需要设置此值。 post则需要设值: 如果请求元素里头包括文件上传: setRequestHeader(Context-Type,multiparty-/form-data) 如果请求元素里头不包括文件上传:setRequestHeade(Context-type,application/x-www-form-urlencoded) 属性readystate:请求状态。 status:响应状态。 onreadystatechange:回调函数 responseText、responseXML:response相应的两种格式。
jquery:
$.ajax({ url:"", type:"", data:"", success:function(result,status){ } error:function(result,status,e){ } }) //顺序可以交换。 $.get( "url" "data" function(result,status){}, "xml"/"json"/"text" ); $.post() //同上 位置不能调换 $("选择器").load( “服务器地址”, “请求数据” ); $.getJson( “服务器地址”, {"",""} 等价于$.ajax({ url:"", type:"", data:"", success:"", dataType:json }) )