Ajax及其应用

上周我们学习了相关的Ajax技术以及应用,接下来我对几下几点有如下看法。

  1. 对Ajax工作原理进行分析。

首先要了解一个新知识,也得知道他的名字有何意义,是什么意思,而AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 不是新的编程语言,而是一种使用现有标准的新方法,用于实现与服务器异步交互的功能。

它的工作原理很复杂,Ajax的工作原理相当于在用户和服务器之间加了—个中间层,也叫做AJAX引擎,使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器。像—些数据验证和数据处理等都交给Ajax引擎自己来做,只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。

通过javascript的方式,将前台数据通过xmlhttp对象传递到后台,后台在接收到请求后,将需要的结果,再传回到前台,这样就可以实现不需要页面的回发,页是数据实现来回传递,从而减少了刷新。

  1. 对XMLHttpRequest对象的属性、方法和事件进行深入理解。

上面我们说道Ajax简单来说,实际上就是通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。而这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解,包括它的属性,

XMLHttpRequest对象:由浏览器提供,开发者可以使用它发出HTTP和HTTPS请求。不需要刷新(重新提交)页面,就可以获取服务器最新的相应,从而修改页面的内容。

其中我们最常用的几个属性分别是如下几个:

2.1  onreadystatechange 属性

onreadystatechange 属性存有处理服务器响应的函数。

下面的代码定义一个空的函数,可同时对 onreadystatechange 属性进行设置:

用法如下:

xmlHttp.onreadystatechange = function() {

//在其中写入一些方法

}

2.2readyState 属性

readyState 属性存有服务器响应的状态信息。每当 readyState 改变时,onreadystatechange 函数就会被执行。

readyState 属性可能的值:

responseText 属性

可以通过 responseText 属性来取回由服务器返回的数据。在我们的代码中,我们将把时间文本框的值设置为等于responseText:

 responseText:
xmlHttp.onreadystatechange = function() {
    if (xmlHttp.readyState == 4) {
        document.myForm.time.value = xmlHttp.responseText;
    }
}
  1. 以JSONPlaceHolder为数据服务,编写案例,以进一步阐述Ajax及XMLHttpRequest对象的用法,尽可能涉及更多的应用场景。

获取用户列表案例

这个应用场景是获取用户列表,我们将通过XMLHttpRequest对象向JSONPlaceHolder发送GET请求,并在页面上显示获取到的用户信息。具体代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />

    <title>Ajax案例</title>
  </head>
  <body>
    <button onclick="getdata()">GetUsers</button>
    <ul id="user-list"></ul>
  </body>
</html>

<script>
  function getdata() {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
      if (xhr.readyState === 4 && xhr.status === 200) {
        var users = JSON.parse(xhr.responseText);
        var list = document.getElementById("user-list");
        list.innerHTML = "";
        for (var i = 0; i < users.length; i++) {
          var li = document.createElement("li");
          li.textContent = users[i].name;
          list.appendChild(li);
        }
      }
    };
    xhr.open("GET", "https://jsonplaceholder.typicode.com/users");
    xhr.send();
  }
</script>

在这个案例中,我们定义了一个名为getdata的函数,当点击按钮时就会调用该函数。函数内部创建了一个XMLHttpRequest对象,并设置了onreadystatechange事件处理函数。当readyState属性变为4(即请求成功完成)且status属性为200时,表示已经接收到响应数据,我们解析JSON格式的响应内容,然后遍历所有用户信息,并将它们添加到页面上的ul元素中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值