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

JS中ajax的原理是什么?

原理:通过XMLHttpRequest对象来向服务器发送异步请求,从服务端获取数据,然后用js来操作DOM去更新页面。

实现过程:

  1. 创建ajax的核心对象XMLHttpRequest对象;
    new XMLHttpRequest( )实例化对象
  2. 通过XMLHttpRequest对象的open( )方法与服务端建立连接;
    new XMLHttpRequest().open(method:表示请求方式,url:服务的地址)
  3. 构建请求所需的数据内容,并通过XMLHttpRequest对象的send( )方法发送给服务器端
    new XMLHttpRequest().send(body:发送的数据);如果使用get请求发送数据,send()参数值为null
  4. 通过XMLHttpRequest对象提供的onreadystatechange事件监听服务器端的通信状态;
    new XMLHttpRequest().onreadystatechange主要监听的属性是实例化对象中resayState(五个状态):
    0:opne()未调用,1:send()未调用,2:send()已经调用,响应头和响应状态已经返回,3:响应头正在下载,responseText(接收服务端响应的结果)获取到部分的数据,4:整个请求过程已经完毕。
    只要resayState属性值发生呢个改变,onreadystatechange被触发
  5. 接收并处理服务端向客户端响应的数据结果;
  6. 将处理结果更新到HTML页面中

相关文章:

  • nacos 拉取配置失败
  • 猿创征文|centos7升级openssh服务(再也不怕漏扫啦)
  • C++正则表达式
  • 【流行框架】Spring
  • Code For Better 谷歌开发者之声——开发者必备神器
  • 猿创征文|机器学习实战(8)——随机森林
  • 红黑树的删除
  • 猿创征文|学习记录之 PHP 中的面向对象编程
  • 猿创征文|UDP/TCP网络编程
  • 1-丁基-3-甲基咪唑双三氟甲基磺酰亚胺([BMIm] NTf2)离子液体修饰Ni镍纳米颗粒的介绍
  • 定时任务报警通知解决方案详解
  • 【js】js实现分页02
  • “结构体名”和“结构体名是个指针”的区别
  • 网课查题api接口使用方法
  • 干货分享|优炫数据库支撑GIS融合的探索
  • JavaScript 如何正确处理 Unicode 编码问题!
  • css布局,左右固定中间自适应实现
  • ES6之路之模块详解
  • in typeof instanceof ===这些运算符有什么作用
  • JAVA并发编程--1.基础概念
  • Java多态
  • JAVA多线程机制解析-volatilesynchronized
  • Promise初体验
  • Python socket服务器端、客户端传送信息
  • python学习笔记-类对象的信息
  • React的组件模式
  • 测试开发系类之接口自动化测试
  • 创建一个Struts2项目maven 方式
  • 欢迎参加第二届中国游戏开发者大会
  • 记一次用 NodeJs 实现模拟登录的思路
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 配置 PM2 实现代码自动发布
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 通信类
  • 新版博客前端前瞻
  • 白色的风信子
  • 大数据全解:定义、价值及挑战
  • 容器镜像
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • #ifdef 的技巧用法
  • (bean配置类的注解开发)学习Spring的第十三天
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET 服务 ServiceController
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .net中调用windows performance记录性能信息
  • @staticmethod和@classmethod的作用与区别
  • [Android Studio] 开发Java 程序