Ajax基础知识点总结

努力前进

目录

为什么需要Ajax?

1.提高用户体验,实现局部刷新效果

 2.提高性能和降低带宽消耗

什么是 Ajax

Ajax 的工作原理

Ajax的工作过程分为以下几个步骤:

最基础的Ajax代码演示:

open函数中的参数分析:

在Ajax中readyState和state的区别

Ajax中readyState和status的区别:

什么是http响应状态码


为什么需要Ajax?

Ajax(Asynchronous JavaScript and XML)是一种通过JavaScript和XML进行网页异步传输的技术。它的出现主要解决了以下两个问题:

1.提高用户体验,实现局部刷新效果

在传统的Web应用程序中,当用户与服务器交互时,页面需要重新加载,这会导致用户体验不佳。而使用Ajax技术,可以在不刷新整个页面的情况下更新部分页面内容,从而提高了用户体验。

例如,在一个电商网站中,当用户点击“添加到购物车”按钮时,可以使用Ajax将商品添加到购物车中,并在页面上动态地展示购物车中的商品数量,而无需刷新整个页面。

 2.提高性能和降低带宽消耗

在传统的Web应用程序中,每次与服务器交互都需要重新加载整个页面,这会导致性能和带宽消耗的浪费。而使用Ajax技术,可以在不刷新整个页面的情况下获取所需数据,从而提高了性能并降低了带宽消耗。

例如,在一个新闻网站中,当用户点击某个分类标签时,可以使用Ajax获取该分类下的新闻列表,并仅展示所需的列表部分,而无需重新加载整个页面。

总之,我们使用的传统的像a标签(超连接)等去访问服务器获取资源的方式都无法实现页面局部刷新效果,但是Ajax却可以实现页面的局部刷新效果;

什么是 Ajax

Ajax : 即 异步JavaScript 和 XML ,Ajax 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新,而传统不使用Ajax的网页,如果需要更新内容,必需重载整个网页面。

Ajax 的工作原理

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

Ajax的工作过程分为以下几个步骤:

  1. 用户与浏览器交互,触发事件(如点击按钮)。

  2. JavaScript代码执行,创建XMLHttpRequest对象,并指定回调函数。

  3. XMLHttpRequest对象向服务器发起异步请求,发送数据。

  4. 服务器接收请求并处理数据,将结果返回给XMLHttpRequest对象。

  5. XMLHttpRequest对象将服务器响应传递给回调函数进行处理。

  6. 回调函数更新页面内容,展示最新的数据。

最基础的Ajax代码演示:

//new XMLHttpRequest对象
var xhr = new XMLHttpRequest();
//调用回调函数
xhr.onreadystatechange = function(){
    if (this.readyState == 4) {
            if (this.status == 200) {
                 var jsonobj = JSON.parse(this.responseText);
                 jsonstr.success(jsonobj)
             } else {
                  alert(this.status)
             }
     }
}
//打开通道并传入必要参数(请求方式、url、是否支持异步)
xhr.open("method"," url",async)
//发送数据
xhr.send()

open函数中的参数分析:

1、method 参数是用于请求的 HTTP 方法。值包括 GET 、POST、HEAD、PUT、DELETE(不区分大小写)

2、url 参数是请求的主体。大多数浏览器实施了一个同源安全策略,并且要求这个URL 与包含脚本的文本具有相同的主机名和端口

3、async 参数指示请求使用应该异步执行。如果这个参数为 false,代表请求是同步的,后续对 send() 的调用将阻塞,直到响应完全接受;如果这个参数是 true 或省略,请求是异步的,且通常需要一个 onreadystatechange 事件句柄。

在Ajax中readyState和state的区别

    在Ajax中,正确的术语是readyState和status而不是state。readyState指XMLHttpRequest对象的当前状态,其值从0到4变化,表示请求的不同阶段(初始化、载入数据、处理数据、完成请求)。而status则是HTTP响应的状态码,表示服务器返回的状态信息,例如200表示成功,404表示未找到请求的资源。

详细区别:

Ajax中readyState和status的区别:

属性描述
readyStateXMLHttpRequest对象的当前状态,范围从0到4。
0(UNSENT)XMLHttpRequest已创建,但未打开(未调用open方法)。
1(OPENED)open方法已经被调用,但send方法未被调用。
2(HEADERS_RECEIVED)send方法已经被调用,并且头部和状态已经可获得。
3(LOADING)下载中; responseText 属性已经包含部分数据。
4(DONE)请求操作已完成。这意味着响应数据已经完全接收。
statusHTTP响应状态码,表示服务器返回的状态信息。
200"OK"。请求成功。
404"Not Found"。请求的资源不存在。
500"Internal Server Error"。服务器遇到了一个错误。

请注意,"state"不是Ajax中的正确术语,应该使用"status",我在表格中更正。

什么是http响应状态码

HTTP响应状态码是Web服务器向客户端(如浏览器)发送的3位数字代码,用于表示特定HTTP请求的结果。它们由Web服务器生成,以指示请求是否成功完成,并告诉客户端如何处理响应数据。

HTTP响应状态码分为5个类别:

  • 1xx (Informational):请求已被接受,需要继续处理。

  • 2xx (Successful):请求已成功被服务器接收、理解、并接受。

  • 3xx (Redirection):需要客户端进一步操作才能完成请求。

  • 4xx (Client Error):客户端请求包含语法错误或无法完成请求。

  • 5xx (Server Error):服务器无法完成明显有效的请求。

常见的HTTP响应状态码包括200 OK表示请求成功,404 Not Found表示请求资源不存在,500 Internal Server Error表示服务器内部错误等。
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
实现异步登录功能,可以使用 AJAX 技术来实现。下面是基本的实现步骤: 1. 编写前端页面,包含登录表单和提交按钮。 2. 编写 JavaScript 代码,监听提交按钮的点击事件,获取表单数据,并通过 AJAX 技术将数据发送到后端。 3. 后端接收到数据后,进行登录验证。如果验证成功,返回登录成功信息;否则返回失败信息。 4. 前端通过 AJAX 接收到后端返回的信息,并进行处理。如果登录成功,跳转到主页;否则给出提示信息,让用户重新输入。 下面是一个简单的示例代码: HTML 代码: ``` <form id="loginForm"> <label>用户名:</label> <input type="text" name="username"><br> <label>密码:</label> <input type="password" name="password"><br> <button type="submit">登录</button> </form> ``` JavaScript 代码: ``` $(function() { // 监听提交按钮的点击事件 $('#loginForm').submit(function(event) { // 阻止表单的默认提交行为 event.preventDefault(); // 获取表单数据 var formData = $(this).serialize(); // 发送 AJAX 请求 $.ajax({ url: 'login.php', type: 'post', data: formData, dataType: 'json', success: function(response) { // 处理后端返回的数据 if (response.success) { // 登录成功,跳转到主页 window.location.href = 'index.html'; } else { // 登录失败,给出提示信息 alert(response.message); } } }); }); }); ``` PHP 代码: ``` // 接收表单数据 $username = $_POST['username']; $password = $_POST['password']; // 进行登录验证 if ($username == 'admin' && $password == '123456') { // 登录成功,返回成功信息 echo json_encode(array('success' => true)); } else { // 登录失败,返回失败信息 echo json_encode(array('success' => false, 'message' => '用户名或密码错误')); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值