AJAX

DHTML

  • 动态HTML(Dynamic HTML,简称DHTML),其实并不是一门新的语言,它只是HTML、CSS和客户端脚本的一种集成,即一个页面中包括html+css+javascript(或其它客户端脚本),其中css和客户端脚本是直接在页面上写而不是链接上相关文件。DHTML不是一种技术、标准或规范,只是一种将目前已有的网页技术、语言标准整合运用,制作出能在下载后仍然能实时变换页面元素效果的网页设计概念。

XHR

  • XmlHttpRequest异步数据获取技术

AJAX

  • AJAX不是一门新的技术, 而是将JavaScript, XML和异步执行这3项综合运用的一个解决方案

  • ajax的特性。它是用来发送异步请求的,请求的是服务器,但不会刷新页面

    • 包含主要内容

      • 运用HTML + CSS来表达信息

      • 运用JavaScript操作DOM来实现效果

      • 运用XML, JSON等进行数据交互

      • 运用XMLHttpRequest与web服务器进行异步数据交互

  • AJAX交互模型
    《AJAX》

  • AJAX支持WEB异步交互

  • AJAX 异步的javascript和xml

  • AJAX = DHTML + XHR

AJAX编码步骤

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>测试异步与服务器的通信</title>
    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    <script type="text/javascript" src="util.js"></script>
    <script type="text/javascript">
        window.onload=function(){
            document.getElementById("bt1").onclick=function(){
                //发出异步请求
                
//                 1、创建XmlHttpRequest对象
                var xhr = getXmlHttpRequest();
//                 2、注册状态监控回调函数    .何时调用。xhr属性readyState每次发生变化时
                xhr.onreadystatechange=function(){
                    if(xhr.readyState==4){//说明响应结束
                        if(xhr.status==200){//说明响应成功。status代表是响应状态码
                            //alert(xhr.statusText);
                            alert("异步请求已经响应结束了,请到控制台看看服务器端有没有输出");
                        }
                    }
                }
//                 3、建立与服务器的异步连接
                xhr.open("GET","/day21_00_ajax/servlet/ServletDemo1?time="+new Date().getTime());
//                 4、发出异步请求
                xhr.send(null);

            }
        }
    </script>
  </head>
  
  <body>
    <input type="button" id="bt1" value="发出异步请求"/>
  </body>
</html>

XmlHttpRequest的属性

  • a、readyState:short只读 标识着当前的请求状态

    1 XmlHttpRequest对象被创建了。此时为0
    2 建立与服务器的链接,但是请求还没有发出去。此时为1。open(),send()还没有执行。
    3 发出了请求,但是服务器没有任何响应。此时为2
    4 接收到了服务器的响应,接收到了服务器发出的响应消息头时,此时3.
    5 接收到了服务器发送的响应正文,响应结束。此时为4
    《AJAX》

  • b、status:代表着响应状态码

  • c、statusText:响应码描述

  • d、responseText:字符串类型。代表着响应正文内容,把他当做文本对待

  • e、responseXML:Document。代表着响应正文内容,把他当做一个Document对象。(DOM)

XmlHttpRequest的方法

  • a、getAllResponseHeaders():返回的是所有的响应消息头。是一个字符串。

  • b、getResponseHeader(var headerName):返回指定响应消息头的值。是一个字符串。

  • c、open(var method,var url,boolean isAnsy):建立连接。

    • method,请求方式

    • url,请求的地址

    • isAnsy,同步还是异步。默认是true,就是异步。

  • d、send(var data):向服务器发送请求正文。如果是get请求,请求传入null.
    如果是post请求:data =”username=abc&password=123″

  • e、setRequestHeader(var headerName,var headerValue):向服务器发送请求消息头。

XmlHttpRequest的状态监听器

  • onreadystatechange,指向是一个函数。回调函数。

  • 何时触发执行,每次XHR对象的readyState发生变化都会触发。

  • 一般写法:

    xhr.onreadystatechange=function()
    {
    if(xhr.readyState==4)
    {
        if(xhr.status==200)
        {
             //JS之DOM、BOM编程
        }
    }
    }
    原文作者:SportCloud
    原文地址: https://segmentfault.com/a/1190000007684640
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞