当前位置: 首页 > news >正文

什么是ajax,为什么使用ajax?ajax都有哪些优点和缺点?

ajax 的全称 Asynchronous JavaScript and XML (异步 JavaScript 和 XML)。 

ajax 是一种创建交互式网页应用的网页开发技术。其中最核心的依赖是浏览器提供的XMLHttpRequest 对象,是这个对象使得浏览器可以发出 HTTP 请求与接收 HTTP 响应。实现了在页面不刷新的情况下和服务器进行交互。

方法描述
new XMLHttpRequest()生成一个 XMLHttpRequest 对象
open(‘请求类型’ , ’URL’ , ’请求方式’)

1.请求类型:get、post

2.请求地址:服务器(文件)位置

3.请求方式:true 为异步,false 为同步
send()发送请求
onreadystatechange

该方法可以定义响应执行函数,当 readyState 属性发生变化时会自动调用该方法。

readyState

交互流程,有 5 个阶段

0.请求初始化

1.服务器链接已建立

2.请求已接收

3.正在处理请求

4.请求已完成且响应已就绪
status

HTTP 响应状态码

200 :OK(请求成功)

403 :Forbidden(禁止)

 404 :Page not found(未找到
responseText响应文本(返回的数据)
setRequestHeader(‘头部名称’ , ‘头部值’)请求头,向请求添加 HTTP 头部

ajax 使用方法:
1.    创建 XMLHttpRequest 对象
2.    使用 open 方法指定要请求的地址、类型和方式。
3.    使用 send 方法发送请求,如果需要传参:
get 方式要将参数拼接到 URL 后边,参数间&分割。例:’index.php?name=张三&age=18’ post 方式可以将参数放到 send()里。例:send(‘name=张三&age=18’)
4.    绑定 onreadystatechange 事件,判断 readyState 和 status 的状态。
5.    接收数据,通过 json 转换使用。

get请求方式

// 创建一个新的 XMLHttpRequest 对象
let xhr = new XMLHttpRequest();// 初始化一个 GET 请求,指向 js/index.json 文件
xhr.open('get', 'js/index.json', true);// 发送请求
xhr.send();// 监听请求状态变化
xhr.onreadystatechange = function() {// 检查请求是否完成(readyState 为 4)并且状态码为 200(成功)if (xhr.readyState == 4 && xhr.status == 200) {// 获取响应文本let text = xhr.responseText;console.log(text); // 在控制台输出响应文本// 解析 JSON 格式的响应文本let data = JSON.parse(text);console.log(data); // 在控制台输出解析后的数据对象}
};

POST请求方式 

<script>//创建一个包含电话号码和密码的对象let obj = {phone_number: "15836028325",password: "111111"};// 创建 XMLHttpRequest 对象let xhr = new XMLHttpRequest();//  初始化一个 POST 请求,指定请求的 URLxhr.open("POST", "https://zx.nh2r.top/api/admin/login", true);// 设置请求头的 Content-Type 属性,以表明请求体数据格式为 JSONxhr.setRequestHeader('Content-Type', 'application/json');//发送请求,同时将对象转换为 JSON 字符串以发送给服务器xhr.send(JSON.stringify(obj));// 监听 onreadystatechange 事件,以处理服务器的响应xhr.onreadystatechange = function() {// 检查请求是否完成(readyState 为 4)并且状态码为 200(成功)if (xhr.readyState === 4 && xhr.status === 200) {//解析服务器返回的 JSON 响应并输出到控制台console.log(JSON.parse(xhr.response));}};
</script>

为什么使用 AJAX?

  1. 提升用户体验

    • 用户不需要等待整个页面加载,操作更流畅。
    • 可以实时更新页面内容,例如表单提交、内容加载等。
  2. 减少服务器负担

    • 只请求必要的数据,避免不必要的页面重载,降低服务器的处理负担。
  3. 增强交互性

    • 允许开发者创建更为动态和互动的用户界面,例如实时搜索建议、数据图表更新等。
  4. 提高性能

    • 减少数据传输量,仅发送和接收所需的信息,提高加载速度。

AJAX 的优点

  1. 异步处理

    • 用户在发起请求后,可以继续与页面互动,而不必等待响应。
  2. 局部更新

    • 只更新页面的某一部分,而不是整个页面,减少了页面重绘的成本。
  3. 灵活性

    • 可以与多种格式的数据(如 JSON、XML、HTML、文本等)进行交互,支持多种数据处理方式。
  4. 改善响应时间

    • 通过发送较小的数据包而非完整页面,响应时间通常更快。
  5. 更好的带宽利用

    • 减少数据传输量,提高带宽利用率。

AJAX 的缺点

  1. 复杂性

    • 增加了代码复杂度,调试和维护可能更加困难。
  2. 浏览器兼容性

    • 早期的浏览器对 AJAX 的支持不一,可能需要额外的代码来确保兼容性。
  3. SEO问题

    • AJAX 动态加载的内容可能不被搜索引擎索引,影响搜索引擎优化(SEO)。
  4. 依赖 JavaScript

    • 如果用户禁用 JavaScript,AJAX 功能将无法使用,影响网站可用性。
  5. 安全性问题

    • AJAX 请求可能面临跨站请求伪造(CSRF)和跨站脚本(XSS)攻击的风险,需采取适当的安全措施。

总结

AJAX 是一种强大且灵活的技术,适用于提高网页的交互性和用户体验。在使用 AJAX 时,开发者需权衡其优缺点,考虑项目的具体需求和目标。通过合理地设计和实现,可以最大程度地发挥 AJAX 的优势。


http://www.mrgr.cn/news/62499.html

相关文章:

  • centos7 zabbix监控nginx的pv和uv和status_code
  • [vulnhub] SecTalks:BNE0x00 - Minotaur
  • Electron+Vue3+TS+sqlite3项目搭建加入sqlite3后无法运行问题
  • 区块链国赛题目--食品溯源(模块三)
  • 基于SpringBoot的项目工时统计成本核算管理源码带教程
  • C++extern关键字(详解)
  • 006 单词倒序
  • 使用sql计算每天新增用户的ltv1、ltv2以及次留
  • 批量删除redis数据【亲测可用】
  • 校园社团信息管理:Spring Boot技术的优势与实现
  • 期货跟单、量化交易模拟演示系统
  • Abaqus自己构建材料库导入材料库
  • AUTOSAR CP中的CDD复杂驱动介绍
  • Javaweb梳理3——SQL概述+DDL语句1
  • SpringBoot旋律:打造现代Web音乐平台
  • 【专题】2024年金融数字化转型白皮书报告汇总PDF洞察(附原数据表)
  • 从“死敌”到“盟友”,英特尔和AMD世纪大“和解”!
  • 不再输入单号查快递,批量查快递单号信息的新方法,智能排序快递时效并查找时效相同的单号,一站式物流查询解决方案
  • 从零开始设计简易Queue:底层原理与实现
  • 【传知代码】检测图像P图痕迹(论文复现)
  • SpringBoot和弦:创建Web音乐网站指南
  • LeetCode每日一题3165---不包含相邻元素的子序列的最大和
  • Springboot3.3 + Mybatis / Mybatis-plus
  • Python虚拟显示器pyvirtualdisplay
  • 这个AI植物整活创意项目,操作起来没难度!
  • 特斯联巨亏数十亿:毛利率剧烈波动下滑,高管动荡引发关注