前端基础(二):Ajax

1.Ajax概念
2.Ajax老的一套模板
3.jQuery中Ajax的应用
4.Json
5.Ajax例子

1.Ajax:异步传输

           普通同步传输:你传输,我看着你传,你传完了我再做其他事情

           异步传输:你传你的,我做我的事情,传输完了告诉我一声

           Ajax:允许浏览器与服务器通信而无需做到刷新当前页面的技术

           什么技术可以不刷新页面就可以通信?

           (1).Flash    (2).Java Applet    (3).框架    (4).隐藏iframe    (5).XMLHttpRequest

2.Ajax老的一套模板

           (1).创建XMLHttpRequest对象

           (2).服务器端对客户端进行相应

           (3).客户端与服务器端建立连接

           (4).客户端向服务器端发送请求

           (1).创建XMLHttpRequest对象

                      function ajaxFunction(){

                                 var xmlHttp;

                                 try{

                                            xmlHttp = new ActiceXObject("Msxml2.XMLHTTP");

                                 }catch(e){

                                            try{

                                                       xmlHttp = newActiveXObject("Microsoft.XMLHTTP");

                                            }catch(e){

                                            }

                                 }

                      }

           (2).服务器端对客户端进行相应

                      var xhr = ajaxFunction();

                      xhr.onReadyStateChange = function(){

                                 if(xhr.readyState == 4){

                                            if(xhr.status == 200 || xhr.status == 304){

                                                       var data = xhr.responseText;

                                            }

                                 }

                      }

           注:

                      ^1.readyState表示Ajax属性:

                                 0:未初始化

                                 1:正在加载。           open()方法已经调用,send()方法还没调用

                                 2:加载完毕。           send()方法已经调用,请求开始

                                 3:交互中                   服务器正在发送响应

                                 4:完成。                    响应发送完成

                      ^2.xhr.status:常用状态码及其含义

                                 404:找不到页面

                                 500:服务器错误

                                 403:禁止访问

                                 304:源文件没有修改

                                 200:正常

                      ^3.xhr.responseText:服务器发回的响应结果,字符串

                          xhr.responseXML:服务器发回的相应结果,XML对象

           (3).客户端与服务器建立连接

                      xhr.open(method,url,asynch);

                      method:GET,POST

                      asynch:请求是否要异步,一般默认异步true

           (4).客户端向服务器端发送请求

                      ^1.GET方法

                                 xhr.send(null);

                      ^2.POST方式

                                 xhr.sendRequestHeader("Content-Type","application/x-www-form-urlencoded");

                                 xhr.send("a=7");

                      

3.jQuery中Ajax的应用

           上面的模板太麻烦了,jQuery中做了简化:

                      load();

                      $.get();

                      $.post();

                      

4.Json

           (1).Ajax传输的工具有三种:XML,HTTP,JSON

                      XML:解析复杂

                      HTTP:不是标准DOM,而且不可与拆分成多个部分

           (2).Json:简单数据格式,js原生支持

                      ^1.格式:[{名称1:值1,名称2:值2},{名称3:值3,名称4:值4}]

5.Ajax实例

           $().ready(function(){

                      $("#province").change(function(){

                                 $("#ciity option:not(:first)").remove();

                                 var prov = $(this).val();

                                 $.post("cities.xml",function(data){

                                            var $xmlProv = $(data).find("province[name="+prov+"]");

                                            var $cities = $xmlProv.find("city");

                                            $cities.each(function(i,city){

                                                       var $opt = $("<option></option>");

                                                       $opt.text($(city).text());

                                                       $opt.appendTo($("#city"))

                                            });

                                 },"xml");

                      });

           });

猜你喜欢

转载自blog.csdn.net/qq_40594696/article/details/86547529