ajax的系统详细介绍

378 阅读3分钟

前后端交互流程

1. 了解服务器

提供某种服务的机器(计算机)

  • 谷歌 web服务器
  • 爱奇艺 视频服务器
  • qq邮箱 邮件服务器
  • 迅雷 文件服务器
  • qq音乐 音频服务器

2. 了解前端 访问 服务器的几种方式

  • 直接在地址栏输入网址
  • a标签的href属性
  • location.href = 'url'
  • AJAX(页面不会跳转)

3. 了解什么是ajax

(1) ajax技术 : 在网页不跳转的情况下 向服务器请求数据

(2)ajax应用场景: 局部刷新

4. 前后端交互三个流程

(1) 请求(前端)

(2) 处理(后端)

(3) 响应(后端)

image.png

ajax的工作原理

1.ajax工作流程

(1)创建xhr对象
	let xhr = new XMLHttpRequest()
(2)设置请求方法和地址
	xhr.open('请求方法','请求地址')
(3)发送请求
	xhr.send()
(4)注册响应事件
	xhr.onload = function(){}

2. xhr对象的请求状态

  • 0: 请求未初始化 (open之前)
  • 1: 服务器连接已建立 (open之后)
  • 2: 请求已接收 ( 服务器已经收到你的请求 )
  • 3: 请求处理中 ( 服务器正在处理你的请求 )
  • 4: 请求已完成,且响应已就绪 ( 服务器完成响应, onload事件就是在这里执行 )

3.ajax组成部分 (A J A X)

Ajax(阿贾克斯):全称 Asynchronous Javascript And XML(异步的js与xml)

用js发送异步的网络请求

  • A : Asynchronous 异步
    • 同步 : 指的是代码按照从上往下顺序执行
    • 异步 : 代码不会立即执行,而是要等一会儿执行

目前我们学过的ECMAScript只有两个语法是异步的: 定时器 与 ajax

DOM事件也是属于异步的,但是这个是属于DOM的执行机制。所以一般在讨论js同步和异步的时候,主要以js为主,DOM一般不讨论。

  • J:Javascript
  • A :And
  • X : XML 与 XMLHttpRequest
    • XML : 解决跨平台数据传输。
    • 在JSON没有出来以前, 网络传输主要以XML格式数据为主。 后来JSON问世,逐渐取代XML。

HTTP工作原理(常见面试点)

1. get与post区别

(1)传参方式不同

get请求直接在url传参
	'url?key=value'
post在请求体传参   
	xhr.send('key=value')
	xhr.setReauestHeader('Content-type','application/x-www-form-urlencoded')
            

(2)数据大小不同

* get有大小限制, 一般 2-5 MB
* post没有大小限制 (文件上传)
    

(3)传输速度不同

* get传输速度快
* post传输速度慢

(4)安全性不同

* get安全性低
* post安全性高 (登录、注册必须是post请求)

2. put与patch区别

  • put: 全局更新
  • patch: 局部更新

3.HTTP原理 : 网络传输协议

发送请求 : 请求报文

请求行
	请求地址 + 请求方法
请求头
	浏览器告诉服务器,发给你的数据是什么格式
	Content-type: application/x-www-form-urlencoded
请求体
	请求参数

响应请求: 响应报文

响应行
	响应状态码
		2xx : 成功
			200成功
		3xx : 重定向
			302 重定向
		4xx : 前端问题
			400参数错误  403没有权限  404 路径错误  413文件超过最大限制
		5xx : 服务器问题
			500服务器内部错误
	服务器ip地址
响应头
	服务器告诉浏览器,发给你的数据是什么格式
	Content-Type: application/json; charset=utf-8
响应体
	响应数据

4. 发送ajax原理:

发送请求报文

5. 网页从输入url到渲染的流程

1. DNS解析 
	域名解析成ip
2. TCP三次握手
	保证数据传输的 安全 + 可靠
		
3.HTTP连接
	请求
	处理
	响应
4.渲染引擎渲染返回的HTML文件

6.函数防抖和节流

防抖
	单位时间内,频繁触发事件。 以最后一次为准
	应用: 输入框输入事件
	流程 : 
		
节流
	单位时间内,频繁触发事件。只触发一次
	应用:解决高频事件( 滚动条事件 )
	流程 :