AJAX

1.什么是AJAX:
AJAX = Asynchronous JavaScript And XML异步 JavaScript 和 XML AJAX 是一种用于创建快速动态网页的技术 通过在后台与服务器进行数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新
     
最大的特点:
     不用刷新整个页面,就可以使页面实现局部刷新,通过JavaScript来控制页面的元素。
     与服务器进行交互。
     
同步和异步:
     同步交互:当客户端向服务端发送请求之后,需要等待服务器响应结束之后,才可以发送第二
               个请求。
     异步交互:当客户端向服务器发送请求之后,不需要等待服务器响应结束之后,就可以发送第二
               个请求。
               
ajax优点和缺点
     优点:
      AJAX使用Javascript技术向服务器发送异步请求;
      AJAX无须刷新整个页面;
      因为服务器响应内容不再是整个页面,而是页面中的局部,所以AJAX性能高;
     缺点:
      AJAX并不适合所有场景,很多时候还是要使用同步交互;
      AJAX虽然提高了用户体验,但无形中向服务器发送的请求次数增多了,导致服务器压力增大;
      因为AJAX是在浏览器中使用Javascript技术完成的,所以还需要处理浏览器兼容性问题;

2.XMLHttpRequest     XMLHttpRequest 是 AJAX 的基础

创建 XMLHttpRequest 对象 所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象 创建 XMLHttpRequest 对象的语法: var variablename=new XMLHttpRequest(); 老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象: var variablename =new ActiveXObject("Microsoft.XMLHTTP"); 为了应对所有的现代浏览器,包括 IE5 和 IE6,需要检查浏览器是否支持 XMLHttpRequest 对象 如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject ,通过XMLHttpRequest 对象的 open() 和 send() 方法将请求发送到服务器:                                                      1.xmlhttp.open(method,url,async);

2.xmlhttp.send(); (两个方法需要连用)                

    描述 open(method,url,async)    规定请求的类型、URL 以及是否异步处理请求    

               1.method:请求的类型;GET 或 POST  (最好保证大写字母,否则有些浏览器会不支持。与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用,在以下情况中建议使用 POST 请求:     1.无法使用缓存文件(比如更新服务器上的文件或数据库)     2.向服务器发送大量数据(POST 没有数据量限制)     3.发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠)         

               2.url:文件在服务器上的位置               

               3.async:true(异步)或 false(同步)

                send()   将请求发送到服务器          

 如下所示:

var xmlhttp;

if (window.XMLHttpRequest){    

xmlhttp=new XMLHttpRequest();// IE7+,Firefox,Chrome,Opera,Safari 浏览器执行代码

}else{  

  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");// IE6, IE5 浏览器执行代码 }

   xmlhttp.open("post","1.txt",true);
   xmlhttp.send();

//这里是服务器的响应onreadystatechange 事件        描述 responseText    获得字符串形式的响应数据,如果来自服务器的响应并非         XML,使用 responseText 属性 responseXML    获得 XML 形式的响应数据,如果来自服务器的响应是XML,而        且需要作为 XML 对象进行解析,使用 responseXML 属性

   xmlhttp.onreadystatechange = function(){

//里面xmlhttp含有readyState和status属性

readyState        

存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。                 

0: 请求未初始化                 

1: 服务器连接已建立                 

2: 请求已接收               

 3: 请求处理中                 

4: 请求已完成,且响应已就绪

status            

200: "OK"             

404: 未找到页面
   }

2.load事件

load() 方法从服务器加载数据,并把返回的数据放入被选元素中。 语法:$(标签选择器).load(URL,data,callback); 参数说明:     URL:必需的,参数规定您希望加载的 URL。     data:可选的,参数规定与请求一同发送的查询字符串键/值对集合。     callback:可选的,参数是 load() 方法完成后所执行的回调函数。 回调函数参数说明(参数与参数位置相关,与参数名无关)

$("#box").load("ajaxLoad.txt",function(responseTxt,statusTxt,xhr){    responseTxt:包含调用成功时的结果内容     statusTxt:包含调用的状态("success", "notmodified", "error", "timeout" 或"parsererror") xhr - 包含 XMLHttpRequest 对象 (包含前两个)  

if(statusTxt=="success"){ }    

if(statusTxt=="error"){  });

3.get事件

$.get(URL,data,function(data,status,xhr),dataType)

参数描述

URL     必需。规定您需要请求的 URL。

data     可选。规定连同请求发送到服务器的数据。

function(data,status,xhr)    可选。规定当请求成功时运行的函数。             

                 function的参数: data - 包含来自请求的结果数据                 

                 status - 包含请求的状态("success"、 "notmodified"、"error"、"timeout"、"parsererror")                 

                 xhr - 包含 XMLHttpRequest 对象

dataType  可选。规定预期的服务器响应的数据类型。 默认地,jQuery     会智能判断,可能的类型有:               

                                        "xml" - 一个 XML 文档                 

                                         "html" - HTML 作为纯文本               

                                          "text" - 纯文本字符串             

                                           "script" - 以 JavaScript 运行响应,并以纯文本返回                 

                                            "json" - 以 js object natation运行响应,并以 js对象返回             

                                           "jsonp" - 使用 JSONP 加载一个 JSON 块,将添加一个                   

                                           "?callback=?" 到 URL 来规定回调

load和get的区别

jquery的load把返回的数据放到指定的元素中,不是全局函数;
jquery的get把返回的数据交给用户处理,是全局函数
load和get同样是jquery的ajax函数,load的实现,几乎等于get之后再设置网页元素,在ajax获取机制上没有区别,但要注意的是,load方法另一个和get的重要区别,就是load允许指定要插入的远程文档的某个部分,比如:
$("#result").load("test.html #page2");
load是最简单的ajax加载局部网页的方法,但有局限性(只能替换元素内容)。

4.post事件

语法:$.post(url,data,success(data, statusTxt, xhr),dataType)

具体方法参数可参照get事件参数

5.ajax事件

$.ajax({type: 'POST',   url: url,   data: data,   success: success(data , statusTxt,xhr),   dataType: dataType });

 type   规定请求的类型(GET 或 POST)。

url 规定发送请求的 URL。默认是当前页面。

async布尔值,表示请求是否异步处理。默认是 true。

contentType发送数据到服务器时所使用的内容类型默认是:"application/x-www-form-urlencoded"。

dataType 预期的服务器响应的数据类型,即告诉浏览器按照什么数据类型进行解析。

data(key:value)格式     定要发送到服务器的数据。Servlet中使用getParameter(key)来获取

beforeSend(xhr)  发送请求前运行的函数。

error(xhr,status,error) 如果请求失败要运行的函数。

success(result,status,xhr)    当请求成功时运行的函数。

complete(xhr,status) 请求完成时(成功或失败之后均调用)运行的函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值