Ajax介绍及使用
发布日期:2021-06-29 02:56:32 浏览次数:3 分类:技术文章

本文共 3036 字,大约阅读时间需要 10 分钟。

目录

Ajax

AJAX 不是新的编程语言,而是一种使用现有标准的新方法。

AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。(异步无刷新)

例子:比如我给你空间说说点了个赞,直接就能看到效果,并没有刷新页面,就能通过Ajax结合dom操作做出来的

Ajax工作原理

Ajax的工作原理相当于在用户和服务器之间加了一个中间层(Ajax引擎),使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证(比如判断用户是否输入了数据)和数据处理(比如判断用户输入数据是否是数字)等都交给Ajax引擎自己来做, 只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。把这些交给了Ajax引擎,用户操作起来也就感觉更加流畅了。

1、http协议

什么是http协议

传输协议。前端以什么样的形式给服务器传送数据服务器以什么样的形式给前端传送数据

常见的协议类型

TCP保证数据的顺序,尽量不丢失数据。传输效率不高,只支持1对1.UDP不保证数据的顺序,不保证是否丢失数据。传输效率高,支持1对多,多对1

张老师是个超级有趣的年轻小伙子 = 年轻小伙子超级有趣的

http传输过程

1.四个步骤:	1-1:建立连接	1-2:发送请求(客户端发送给服务器)	1-3:返回响应(服务器发送给客户端)	1-4:断开连接。2 只能由客户端发起,不能由服务器发起。3 交互数据只能是字符串。

TCP三次握手 四次挥手

目的:保证传输通道的连接。

在这里插入图片描述

在这里插入图片描述

请求报文

请求报文由三部分组成:1.请求行	get/post 请求方式	api/v1/topic_collect/alsotang 请求地址	http/1.1 传输协议以及版本2.请求头	host:请求主机	Accapt:期望接受的数据类型	UserAgent:请求终端的信息	cookie	referer:表示请求是从哪个url进来的。3.请求体	前端给后端(客户端给服务端)的数据。	get请求:参数会以键值对的形式,用&连接,拼接在URL的后面。键与值之间用=连接。	post:参数不是放在url后面,而是放在requestbody中。

响应报文

响应报文由三部分组成:1.状态行	http/1.1 传输协议以及版本	200 状态响应码	ok 对响应码简单的描述。2.响应头	Date:服务器事件	Server:服务器信息	Content-type:响应体的数据格式以及编码。3.响应体	后端给前端的数据

Ajax介绍

Asynchronous javascript and xml 异步js和xml

xml:存储数据的格式。 现在用json字符串。

异步和同步

js是单线程的语言。

同步:上面的代码未完成时,下面的代码不会去执行。

异步:上面的代码未完成时,下面的代码也可以执行。

setTimeout(()=>{
console.log("延时函数");/及时延时为0,也是后执行 },0); console.log("延时函数后的代码");

在延时函数中,虽然延迟时间为0,但是仍然是一个异步代码。异步代码总会在同步之后执行。

传统的前后端交互的缺点

传统的前后端交互是前后端不分离的,用户触发一个http请求,服务器接受以后,会做出响应,响应的是一个新的页面。也就是说,数据的刷新是通过页面的刷新或者页面的跳转来实现的。	比如:视频页面下方的留言功能。	缺点:		1.用户体验非常不好。		2.因为少量数据的更新而去刷新这个页面,造成了资源的浪费,同时也会对服务器造成巨大的压力。	为了解决这个问题,我们急需一种,不用刷新整个页面,只更新部分数据的技术。ajax就是这样的一门技术。 2005年的时候诞生。

Ajax的特点

优点:

不需要别的插件,或者引入别的文件,浏览器默认就支持Ajax。
用户体验特别好。
提高性能。(在传输数据的时候不需要整体提交,只需要提交少量的数据。)、
减轻服务器的压力

缺点:

前进,后退功能无效。
搜索引擎的支持度不够。

XMLHttpRequest 对象的方法和属性

在这里插入图片描述

在这里插入图片描述

常见的状态值

101 表示连接继续200 成功302 临时重定向301 永久重定向304 缓存	当你访问这个页面之后,浏览器会自动缓存, 再次访问时,浏览器不会向服务器发送请求了,而是从缓存中获取。403 无访问权限404 访问地址不存在500 服务器错误

状态码与状态值

响应状态码:本次请求的响应状态值的范围:100-599  100-199 表示连接继续。200-299 表示各种意义上的成功300-399 表示重定向。400-499 表示客户端错误500-599 表示服务器错误

请求方式

get/post

get:	语义:获取	get参数是在地址栏中	参数4KB大小。	get请求会被浏览器缓存
post:	语义:发送	post参数是requestBoby	大小不受客户端限制,但是可能会被服务器限制。	post请求不会被浏览器缓存,除非通过程序去修改	请求相对于get比较安全。

Ajax使用

1.创建一个xmlhttprequest对象。

2.调用对象的open方法

-------- (1.请求的方式 get/post
2.请求的url
3.是否异步,默认值true,可选参数.)-----------
( post请求需要设置请求头 )
3.调用对象的send方法(将请求发送到服务器)

4.onreadystatechange函数,响应时会自动调用(相当于监听)。

var xhr = new XMLHttpRequest();//名字带有‘xml’的对象//new 一个请求代理对象。xhr.open('GET', 'http://localhost/hai.php?id=1');//建立一个与服务端特定端口的连接,以get方式传输数据xhr.send(null);//发送一个请求,请求体内为null(因为是GET请求,这里不放入数据,所以数据会以?id=1的方式传输数据,当为post请求时这里会放入数据。)xhr.addEventListener('readystatechange', function () {
//注册事件,readystatechange该事件用于监控ajax每个状态的转换,只要转换则就触发该事件。 if (this.readyState !== 4) return; //判断xhr.readyState(ajax状态码)是否为4,不为4则说明没有拿到返回数据 console.log(this.responseText); //返回的数据});

案例:创建一个get请求

(当点击按钮时无刷新获取到内容)

这是创建的一个虚拟环境

$id, 'title' => '穿过挪威的森林,让我走进你的梦里' ))?>
        

案例二:创建一个post请求

这是创建的一个虚拟环境

$id, 'title' => 'hello ajax'))?>
            

封装get请求和post请求的兼容版

            

转载地址:https://blog.csdn.net/z18237613052/article/details/114273516 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Swiper用法(轮播图系列)
下一篇:ES6.class类及构造函数,原型对象prototype,实例对象__proto__属性,面向对象三大特性,(封装,继承,多态)

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月22日 02时22分32秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

特斯拉降维打击 国产电动车怎么“盘”? 2019-04-29
消息称聊天宝团队解散 罗永浩已经退出股东行列 2019-04-29
工信部:今年春节期间电动汽车高速公路充电量增长近三倍 2019-04-29
蔚来第四季度净亏损35亿元 交付7980辆ES8 2019-04-29
京东登陆谷歌卖货 借船出海客场战亚马逊 2019-04-29
阿里影业正式成为阿里集团子公司 俞永福辞任执行董事 2019-04-29
还记得Uber无人车闯下的祸么?警方称Uber“不背锅” 2019-04-29
趣头条第四季度营收13.3亿元 平均月活用户达9380万 2019-04-29
拼多多:去年平台农产品及农副产品订单总额达653亿元 2019-04-29
欢聚时代全资收购BIGO 总交易额约14.5亿美金 2019-04-29
小米9代工厂不止富士康一家 比亚迪制造的小米9将大批出货 2019-04-29
易观推出面向初创企业的免费数据分析产品易观方舟Argo 2019-04-29
柔性屏是一个待集成的新眼镜 2019-04-29
车载微信敲定二季度亮相 腾讯拟抢占车联网制高点 2019-04-29
特斯拉超级工厂一期工程建设敲定上海建工集团 2019-04-29
苹果入侵高通后院 三年内将在圣地亚哥招募1200人 2019-04-29
国产手机品牌如何摆脱“大而不强”困局? 2019-04-29
触宝2018年第四季度净收入4705万美元 同比增长147% 2019-04-29
2019微博#让红包飞#圆满收官 4.6亿网友嗨抢锦鲤红包 2019-04-29
公安部:“净网2018”侦破网络犯罪案件57519起 2019-04-29