Ajax

  • Ajax被认为是(Asynchronous JavaScript and XML的缩写)。现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax.
  • 通过 AJAX,JavaScript 无需等待服务器的响应,而是:
    在等待服务器响应时执行其他脚本
    当响应就绪后对响应进行处理
    在这里插入图片描述
    ●不用刷新整个页面便可与服务器通讯的办法:
      -Flash
      -Java applet
      -框架:如果使用一组框架构造了一个网页,可以只更新其中一个框架,而不必惊动整个页面
      -隐藏的iframe
      -XMLHttpRequest;该对象是对JavaScript的一个扩展,可使网页与服务器进行通信。是创建Ajax应用的最佳选择。实际上通常把Ajax当成XMLHttpRequest对象的代名词
    在这里插入图片描述
    在这里插入图片描述
    ●AJAX不是完美的技术。使用AJAX, 它的一些缺陷不得不权衡一下:
      -由Javascript和AJAX引擎导致的浏览器的兼容
      -页面局部刷新,导致后退等功能失效。
      -对流媒体的支持没有FLASH、Java Applet好。
      -手持设备(如手机、PDA等)支持性差。

●XMLHttpRequest最早是在IE5中以ActiveX组件的形式实现的。非W3C标准.
●创建XMLHttpRequest对象(由于非标准所以实现方法不统一)
-Internet Explorer把XMLHttpRequest实现为一个ActiveX对象
-其他浏览器(Firefox、 Safari、 Opera…). 把它实现为一个本地的JavaScript对象。
-XMLHttpRequest在不同浏览器上的实现是兼容的,所以可以用同样的方式访问XMLHttpRequest实例的属性和方法,而不论这个实例创建的方法是什么。

AJAX - 创建 XMLHttpRequest 对象

var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }


说明:对window. XMHt tpRequest的调用会返回个对象 或null, if语句会把调用返回的结果看作是true或false (如果返回对象则为true,返回null则为false)。如果XMLHt tpRequest对象存在,则把xhr的值设为该对象的新实例。如果不存在,就去检测Activeobject 的实例是否存在,如果答案是肯定的,则把微软XMLHTTP 的新实例赋给xhr

方法描述
abort ()停止当前请求
getAllResponseHeaders()把HTTP请求的所有响应首部作为键/值对返回
getResponselHeader(“header”)返回指定首部的串值
open (“method”, “url”)建立对服务器的调用。Hethod参数可以是GET,POST或PUT. url参数可以是相对URL或绝对URL.
send(content)向服务器发送请求
setRequestHeader(“header”,“value”)把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()

open(method,url,async):规定请求的类型、URL 以及是否异步处理请求。
   method:请求的类型;GET 或 POST
   url:文件在服务器上的位置
   async:true(异步)或 false(同步)
     AJAX 指的是异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。XMLHttpRequest 对象如果要用于 AJAX 的话,其 open() 方法的 async 参数必须设置为 true:
     
send(string):将请求发送到服务器。
   string:仅用于 POST 请求

GET 还是 POST?
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。然而,在以下情况中,请使用 POST 请求:
  无法使用缓存文件(更新服务器上的文件或数据库)
  向服务器发送大量数据(POST 没有数据量限制)
  发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

//简单的 GET 请求:
xmlhttp.open("GET","demo_get.asp",true);
xmlhttp.send();

//在上面的例子中,您可能得到的是缓存的结果。
//为了避免这种情况,请向 URL 添加一个唯一的 ID:
xmlhttp.open("GET","demo_get.asp?t=" + Math.random(),true);
xmlhttp.send();

//通过 GET 方法发送信息,请向 URL 添加信息:
xmlhttp.open("GET","demo_get2.asp?fname=Bill&lname=Gates",true);
xmlhttp.send();

//简单 POST 请求:
xmlhttp.open("POST","demo_post.asp",true);
xmlhttp.send();

如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后send() 方法中规定您希望发送的数据:

xmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Bill&lname=Gates");

setRequestHeader(header,value):请求添加 HTTP 头。
  header: 规定头的名称
  value: 规定头的值

属性描述
responseText获得字符串形式的响应数据。服务器的响应,表示为一个串。
responseXML获得 XML 形式的响应数据。服务器的响应,表示为X0IL. 这个对象可以解析为DM对象。
onreadystatechange每个状态改变(readyState属性改变)是都会触发这个事件处理器,通常会调用一个javaScript函数
readyState请求的状态,有5个可取值: 0=请求未初始化、1=服务器链接已建立,正在加载、2=请求已接收,已经加载、3=请求处理中,交互中、4=请求已完成,且响应已就绪
status服务器的HTTP状态码(200对应OK、404对 应NotFount.等)
statusTextHTTP状态码的相应文本(OK或NotPount等)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值