博客
关于我
夜光带你走进 Ajax(二)
阅读量:279 次
发布时间:2019-03-01

本文共 2056 字,大约阅读时间需要 6 分钟。

AJAX技术

AJAX(Asynchronous JavaScript And XML)技术是一种用于实现异步Web应用的技术,它通过在浏览器端直接与服务器通信而无需重新加载页面,来实现数据的动态更新。AJAX的核心是XMLHttpRequest对象,它允许客户端在不影响用户体验的情况下,单独与服务器进行交互。

AJAX第一例

1.1 准备工作

AJAX技术也需要像传统的Web应用一样,与服务器进行通信。因此,我们需要编写一个简易的Servlet来处理AJAX请求。这个Servlet非常简单,只需要能够返回一个“Hello AJAX~~”的响应即可。

public class AServlet extends HttpServlet {    @Override    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        System.out.println("Hello AJAX~~");        response.getWriter().print("Hello AJAX~");    }}

1.2 AJAX核心:XMLHttpRequest对象

AJAX的核心是XMLHttpRequest对象,这是一个在浏览器端本地创建的对象。所有的AJAX交互都通过这个对象来完成。虽然现代浏览器大多数都支持DOM2规范的XMLHttpRequest,但IE浏览器的实现方式有所不同。

创建XMLHttpRequest对象

为了处理不同浏览器的兼容性,我们可以使用以下方法来创建XMLHttpRequest对象:

function createXMLHttpRequest() {    var xmlHttp;    try {        xmlHttp = new XMLHttpRequest();    } catch (e) {        try {            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");        } catch (e) {            try {                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");            } catch (e) {}        }    }    return xmlHttp;}
打开与服务器的连接

在创建了XMLHttpRequest对象后,我们可以调用其open()方法来打开与服务器的连接。open()方法的参数包括:

  • method:请求方式,通常为GETPOST
  • url:请求的服务器地址。
  • async:表示是否是异步请求,默认值为true
xmlHttp.open("GET", "/ajaxdemo1/AServlet", true);
发送请求

在打开连接后,我们可以调用send()方法来发送请求。对于GET请求,参数可以直接在URL中追加;对于POST请求,需要在请求体中添加参数。

xmlHttp.send(null);
接收服务器响应

当请求发送完成后,服务器会返回响应。我们可以通过readystatechange事件来接收响应。XMLHttpRequest对象的状态共有五种:

  • 初始化未完成状态。
  • 请求已开始。
  • 请求发送完成。
  • 开始读取服务器响应。
  • 读取服务器响应结束。
  • 通常,我们只关心第五种状态,即响应结束状态。我们可以通过以下方式接收服务器的响应:

    xmlHttp.onreadystatechange = function() {    if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {        alert("Hello~");        alert(xmlHttp.responseText);    }};

    1.6 AJAX第一例小结

    通过以上步骤,我们可以完成一个简单的AJAX交互。总结一下关键步骤:

  • 创建XMLHttpRequest对象。
  • 调用open()方法打开与服务器的连接。
  • 调用send()方法发送请求。
  • XMLHttpRequest对象指定readystatechange事件函数,接收服务器的响应。
  • XMLHttpRequest对象的五种状态是:

  • 初始化未完成状态。
  • 请求已开始。
  • 请求发送完成状态。
  • 开始读取服务器响应。
  • 读取服务器响应结束。
  • 通过readystatechange事件,我们可以根据readyState属性获取服务器的响应状态码和响应内容。只有在readyState为4且status为200时,才能获取到完整的响应内容。

    转载地址:http://qtbo.baihongyu.com/

    你可能感兴趣的文章
    PAT 1027 Colors in Mars
    查看>>
    PAT 1127 ZigZagging on a Tree[难]
    查看>>
    PAT 2-07. 素因子分解(20)
    查看>>
    PAT-1044. Shopping in Mars (25)
    查看>>
    PAT-乙级-1040 有几个PAT
    查看>>
    PAT1093 Count PAT's (25)(逻辑题)
    查看>>
    PATA1038题解(需复习)
    查看>>
    Patching Array
    查看>>
    Path does not chain with any of the trust anchors
    查看>>
    Path形状获取字符串型变量数据
    查看>>
    PAT甲级——1001 A+B Format (20分)
    查看>>
    Skywalking原理
    查看>>
    PAT甲级——1006 Sign In and Sign Out (25分)
    查看>>
    PAT甲级——1007 Maximum Subsequence Sum (25分)
    查看>>
    PAT甲级——1009 Product of Polynomials (25分)(最后一个测试点段错误)
    查看>>
    Spring对jdbc的支持
    查看>>
    PayPal网站付款标准版(for PHP)
    查看>>
    Paystack Android SDK 集成与使用指南
    查看>>
    pbf格式详解,javascript加载导出pbf文件示例
    查看>>
    PBOC2.0与3.0的区别
    查看>>