posts - 1,  comments - 1,  trackbacks - 0
1.什么是Ajax?
    Ajax(即异步 JavaScript 和  Xml)是一种web应用程序开发的手段,它采用客户端脚本与web服务器交换数据
    Ajax不是一项技术,而更像是一个模式-------一种识别和描述有用的设计技术的方式
2.普通的web应用模型和Ajax的web应用模型
    web应用模型:用户接口----(HttpRequest)(Html+css)----web服务器----数据存储
    Ajax应用模型:用户接口----(JavaScript Call)(Html+css)----Ajax 引擎----(HttpRequest)(XML Data)---web服务器----数据存储
3.普通的web应用的同步交互和Ajax的web应用的异步交互
4.Ajax交互流程
   1.用户在web页面的交互动作触发DOM事件
   2.DOM事件处理者收到事件发生的消息处理
   3.事件处理者创建XMLHttpRequest对象,设置目标URL,HTTP方法(get,post)等内容,注册服务器响应的回调函数
   4.向服务器发出异步的HTTP请求
   5.异步请求发出后,浏览器不必等待服务器响应用户可以继续与页面交互
   6.服务器收到请求后,指派对应的 servlet 处理对应逻辑
   7.将结果数据序列化成XML作为响应内荣,返回给浏览器
   8.调用在XMLHttpRequest对象上注册的回调函数
   9.回调函数解析响应内容XML文档,依据其中的数据使用javaScript操纵DOM对象更新页面内容
5.使用Ajax 技术要考虑一下情况
   1.XMLHttpRequest 的可用性
   2.用户可用性考虑
   3.服务器负载
   4.处理异步
    总之,创建成功的Ajax 应用程序要求整体考虑,从UI设计到javaScript设计,再到服务器端架构
6.Ajax的核心技术----XMLHttpRequest
   ---XMLHttpRequest对象简介
        1.XMLHttpRequest对象是整个Ajax开发的基础
        2.提供客户端和服务器异步通信的能力
        3.能够向服务器发出请求
        4.能够接受服务器的返回页面
        5.最早出现在IE,随着应用的广泛,渐渐推广到其他浏览器中
   ---使用XMLHttpRequest对象和服务器通信
   ---使用实例
   XMLHttpRequest对象创建
         1.创建XMLHttpRequest对象
          ---不同的浏览器创建方法不同
          ---IE5.0创建代码    new ActionXObject('XMsxm12.XMLHTTP')
          ---IE5.5或以上创建代码          new ActionXObject('Microsoft.XMLHTTP')
          ---不支持ActiveX控件的浏览器创建代码     new XMLHttpRequest()
         ----一般用三层嵌套方式来创建
XMLHttpRequest对象属性
        ---就绪状态 readvstate 描述 Http请求的状态
             0 表示未初始化,即XMLHttpRequest对象未创建open()方法未调用
             1 表示XMLHttpRequest对象被创建,但请求未发出send()未调用
             2 表示Http请求已经发出正在处理中,这时可以取得Http头信息,但是Http内不可用
             3 表Http响应内容部分数据可用,但响应还没有完成
             4 表示服务器响应完成,可以从属性 responseBody,responseText中获得完整响应内容
      ----响应主体responseBody:以无符号字节数组描述响应内容正文
       ---响应流 responseStream,以IStream(二进制数据流)形式描述响应内容正文
      ----响应文本responseText 响应内容正文的纯文本形式
      ----响应XML responseXML 以XML Dom描述响应内容正文,常用
      ----状态代码 status: HTTP状态码,常见的有200,404等
      ----onreadystatechange 指定当发生就绪状态变更事件时的处理者,通常是javaScript 函数
---XMLHttpRequest对象的方法
     -----abort 取消当前的HTTP请求
     -----getResponseHeader  获得响应内容得HTTP头信息
    -----open 初始化一个HTTP请求,指定请求方法(get/post)url ,身份验证信息等
    -----send  发出一个Http请求道服务器
    -----setRequestHeader:  设置Http请求的头信息
-----XMLHttpRequest对象方法
    ----用open方法创建一个请求
          ----open
          ----method   请求类型  get或 post
          ----url   请求地址,可以绝对也可以相对,可以附带查询字符串
         ----Asynchronous 可选参数,请求同步还是异步,默认为 true 同步
         ----user.pwd  可选参数,请求的用户名和密码,没有则省略
         ----如果使用"get"方式发出请求,可以用下述方法
               -----url = "ajax.jsp?aa=bb&&cc=dd"; xmlhttp.open("get",url);Xmlhttp.send(null);
          ----如果使用"get"方式发出请求,可以用下述方法
               -----url = "ajax.jsp?aa=bb&&cc=dd"; xmlhttp.open("post",url);Xmlhttp.send(body);
                注意:如果url中包括查询字符转,则会显示在浏览器地址栏中
         -----用send方法发送一个请求
               --send(body)  body为参数,表示发送至服务器的数据,格式为查询字符转格式  例  body = "username=aa&&password=bb"
        -----同步还是异步
                如果使用同步方法,执行完send方法后阻塞,直到请求完成或超时才执行下一句语句
               如果使用异步方法,执行完send方法后阻塞,立即执行下一句语句
-----XMLHttpRequest对象应用
       使用onreadystatechange 事件捕获请求的状态变化
       xmlhttp.onreadystatechange =function(){
                     ..................事件处理代码
             }
             xmlhttp.open();
             xmlhttp.send();
            ---事件绑定代码必须先于 open和 send 代码,否则可能引起事件代码无法得到执行
            -----使用readyState 属性判断请求状态
                    1.0 初始值,表示对象建立,但未初始化,此时没有调用 open
                    2.1 open 已调用,为调用send
                    3.2 send已调用,其他数据未知
                    4..3请求已经成功发送,正在接受数据
                    5.4 数据接收完成
              -----使用 status 属性判断请求结果
                     status值---
                       200 请求成功
                       202 请求被接受,但是未处理完成
                       400 错误的请求
                       404 请求资源未找到
                       500 服务器内部错误
-------使用responseText 获得返回的文本
          ---responseText 可以获得以文本形式返回的数据结果,也就是所请求网页的 html 代码;
-------使用responseText 获得返回的XML文档
         ---responseXML可以获得以XML形式返回的数据结果,其中,该XML文档已经解析完毕
        ----使用该方法须确定服务器端返回的是XML格式文档
其他XMLHttpRequest对象属性和方法
      ---Xmlhttp.abort() 立即中止请求的发送
     ----responseBody 返回未解码的二进制数据
    ----statusText
  购物车实例
posted on 2009-04-28 20:54 玄风 阅读(111) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(2)

随笔档案

文章档案

搜索

  •  

最新评论