AJAX的介绍及简单应用

AJAX 概述

AJAX

  • AJAX 是 Asynchronous JavaScript And XML 的缩写
  • AJAX 是一种用于创建快速动态网页的技术
  • AJAX 不是新的编程语言, 而是一种使用现有标准的新方法
  • AJAX 最大的优点是在不重新加载整个页面的情况下, 可以与服务器交换数据并更新部分网页内容。
  • 传统的网页(不使用 AJAX) 如果需要更新内容, 必需重载整个网页面 AJAX 不需要任何浏览器插件, 但需要用户允许
    JavaScript 在浏览器上执行。
  • 有很多使用 AJAX 的应用程序案例: 新浪微博、 Google 地图、 开心网等等。
  • 浏览器与服务器通信采用的就是AJAX技术,AJAX核心是XMLHttpRequest对象
AJAX 是基于现有的 Internet 标准

并且联合使用它们:

  • XMLHttpRequest 对象 (异步的与服务器交换数据)

  • JavaScript/DOM (信息显示/交互)

  • CSS (给数据定义样式)

  • XML (作为转换数据的格式)

AJAX 局部更新网页流程图

AJAX局部更新网页流程图

异步流程
1、创建对象
2、设置回调函数 ,fun函数
3、open 创建服务器请求
4、send  向服务器发送请求,
5、服务器有结果会自动调用fun回调函数
(在回调函数里面根据服务器返回的响应信息 更新用户界面)
AJAX的通信过程

1、创建xmlHttpRequest对象

在js文件中开始处定义这个函数,其他js函数直接调用就能创建一个异步请求对象

function getXMLHttpRequest()
{
    var xmlhttp = null;
    if (window.XMLHttpRequest)//自动检测当前浏览器的版本,如果是IE5.0以上的高版本的浏览器
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();//创建请求对象
    }
    else如果浏览器是底版本的
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");//创建请求对象
    }
    return xmlhttp;//返回请求对象
}

2、设置服务器响应的回调函数

每个(服务器的)状态改变时都会触发Onreadystatechange 这个事件处理器,通常会在这个回调函数里去调用一个JavaScript函数
服务器的状态:

  • readyState:请求的状态
    0 = 未初始化,1 = 正在加载,2 = 已加载,3 = 交互中,4 = 完成
  • status:服务器的HTTP状态码
    200对应OK,404对应Not Found

不是每一种状态改变都要处理,一般在readyState 状态值为4,status状态值为200的时候,处理服务器应答,所以在回调函数里写一个判断,判断readyState 为4,status为200,再做处理
服务器的应答:

  • responseText 和 responseXML就是服务器的反馈的结果
属性描述
onreadystatechange每个状态改变时都会触发这个事件处理器 通常会调用一个JavaScript函数
readyState请求的状态。0 = 未初始化,1 = 正在加载,2 = 已加载, 3 = 交互中,4 = 完成
responseText服务器的响应,表示为一个字符串
responseXML服务器的响应,表示为XML。这个对象可以解析为一个DOM对象
status服务器的HTTP状态码,200对应OK,404对应Not Found
statusTextHTTP状态码的相应文本(OK或Not Found(未找到)等等)

标准的XMLHttpRequest对象的方法:

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

3、open的使用

//想从服务器上请求文件a.txt
var url = "a.txt?data";
xmlhttp.open("GET",url,true);//true异步   false同步

4、send的使用

//GET方式:
xmlhttp.send(不要传任何数据);
//POST方式:
xmlhttp.send(data);
案例:请求服务器上的文件数据

demo.txt

<html>
    <head>
        <title>demo</title>
        <meta charset="utf-8"> 
        <script type="text/javascript" src="./js01.js"></script> 
    </head>
    <body>
        文件的内容: <label id="label"></label>
        <br>
        <input type="button"  value="获取文件的内容" id="button" onclick="get_file_content();">
    </body>
</html>

js01.js

function getXMLHttpRequest()
{
    var xmlhttp = null;
    if (window.XMLHttpRequest)//自动检测当前浏览器的版本,如果是IE5.0以上的高版本的浏览器
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();//创建请求对象
    }
    else如果浏览器是底版本的
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");//创建请求对象
    }
    return xmlhttp;//返回请求对象
}

function get_file_content()
{
    //获取xmlhttp对象
    var xmlhttp = null;
    xmlhttp = getXMLHttpRequest();

    //设置服务器响应的回调函数
    xmlhttp.onreadystatechange = function(){
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
            document.getElementById("label").innerHTML = xmlhttp.responseText;
        }
    }
    // 创建服务器请求
    xmlhttp.open("get","./file/a.txt", true);

    // 发送服务器请求
    xmlhttp.send();
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值