zoukankan      html  css  js  c++  java
  • AJAX --- 一种创建交互式网页应用的网页开发技术

    AJAX

    ajax核心技术就是 XMLHttpRequest 对象,简称XHR对象。这种客户端与服务器不刷新页面请求数据技术主要是利用XMLHttpRequest对象实现的,IE7 之前版本的浏览器是通过 ActiveXObject 对象实现的。

    创建XHR实例

    var xhr = (typeof XMLHttpRequest === "object") ? new XMLHttpRequest() : new ActiveXObject();
    

    指定readyStatechange事件处理程序

    • 请求/响应步骤: 启动请求 → 发送请求 → 接收部分数据 → 接收完整数据
    • 用户通过检测XHR对象的 .readyState 属性来判断当前请求/响应阶段。
    XHR.readyState 说明
    0 未启动请求
    1 启动请求
    2 发送请求
    3 接收部分数据
    4 接收完整数据

    每次 .readyState 属性值发生变化都会触发一个 readyStatechange 事件,用户可以监听这个事件来判断数据是否接收完毕。

    xhr.onreadyStatechange = function() {
        // xhr.readyState
    };
    

    启动请求

    XHR对象的 .open( method, url, bool ) 方法是启动一个请求(注意:这里并没有发送请求!)。

    参数 说明
    method 请求方法(get、post...)
    url 请求url
    bool 是否异步发送
    xhr.open( "get", "index.php", false );
    

    发送请求

    XHR对象的 .send( null ) 方法是正式发送请求。

    xhr.send( null );
    

    接收数据

    当服务器响应请求后,响应的数据会自动填充 XHR 对象的属性中。

    属性 说明
    responseText 响应文本
    responseXML 响应数据的XML DOM文档
    status 响应HTTP状态
    statusText 响应HTTP状态说明
    // 建议判断status的状态码来确定下一步动作
    xhr.onreadyStatechange = function() {
        if( xhr.status >= 200 && xhr.status < 300 || xhr.status == 304 ) {
            console.log( xhr.responseText );
        }
    }
    

    取消XHR请求/响应

    • 通过XHR对象的 .abort() 方法来取消请求或者关闭响应。
    • 终止请求之后, XHR 会停止触发事件,并且禁止访问与响应有关的属性。
    • 终止请求之后,最好释放XHR引用,避免内存浪费。
    xhr.abort();
    xhr = null;
    
  • 相关阅读:
    [单调栈] Jzoj P4260 最大子矩阵
    [前缀和] Jzoj P4259 矩形
    [欧拉回路][状压dp] Jzoj P3290 吃货JYY
    [组合数][枚举] Jzoj P3332 棋盘游戏
    [欧拉函数][dp][快速幂] Jzoj P1161 机器人M号
    [exgcd] Jzoj P1158 荒岛野人
    [带权并查集] Jzoj P1503 体育场
    [dfs][树的直径] Jzoj P1737 删边
    [差分][倍增lca][tarjan] Jzoj P3325 压力
    [dfs] Jzoj P1497 景点中心
  • 原文地址:https://www.cnblogs.com/roddy/p/6514072.html
Copyright © 2011-2022 走看看