zoukankan      html  css  js  c++  java
  • ajax_XMLHttpRequest

         之前在项目中经常用jquery ajax进行局部刷新,最近想来仅仅是用而且,对于它是怎么个回事一窍不通哈。今天开始,学习下ajax。

    ajax(Asynchronous JavaScript and XML)并不是一门新的技术而是html,javascrpit,dom,css等技术的结合。ajax的核心是javaScript的对象XMlHttpResquest对象。通过XMlHttpResquest对象的属性和方法来和服务器进行通信。几乎每个浏览器都有用javaScprit编写的ajax引擎。用户发送ajax请求,就跑到了ajax引擎,然后任ajax引擎去与服务器进行互动,用户自己再去干自己的事,从而也就实现了异步。

    参考文档:ajax.chm

    XMLHttpRequest对象的使用。
    1.创建HttpRequestXml对象(ie 和非ie)可以从ajax.chm手册中查到
    2.打开和服务器的链接 open(menthod,url+new Date().getTime(),asynch)其中url一般加上时间措,以避免多次点击同一个url事,从缓存中取数据
    3.发送数据  send(data) 如果是get方式,则为send(null).
    4.接受服务器端的响应(在ajax执行过程中服务器会通知客户端的通信状态。依靠XMLHttpRequest对象的readyState来实现。每次改变,会触发readyStateChange事件
     XMLHttpRequest的readyState属性表示ajax请求的当前状态.
     0代表未初始化。还没调用open方法。
     1代表正在加载。open调用,但send()方法没调用
     2代表加载完毕。send被调用。请求开始
     3代表交互中。服务器正字发送响应
     4代表完成。响应发送完毕)。
     客户端是怎么样接受到服务器发送的响应的呢???返回的数据放在 XMLHttpRequest.responseText 或者responseHTML中
     xmlHttpRequest.readystatechange(){//第四步应该放到第一步的下面
      if(xmlHttpRequest.readyState==4){
       //信息成功返回  200 没有被修改  304
       if(xmlHttpRequest.status==200|| xmlHttpRequest.status==304){
        alter(xmlHttpRequest.responseText);
       }
      }
     }

  • 相关阅读:
    升级或安装 GNOME Shell
    安装eclipse for c/c++环境
    BT3入门之中文语言支持
    开始接触BT5-自动登录X界面
    标准流与序列化
    IO流
    Collection与Map容器
    常用类
    枚举与常用类
    异常处理机制
  • 原文地址:https://www.cnblogs.com/hqqcoffee/p/3503686.html
Copyright © 2011-2022 走看看