最近看到一个挺搞笑的,分享一下。
即兴赋诗一首,哈哈哈。
《规范代码》
代码千万行,
注释第一行。
代码不规范,
同事两行泪。
这个梗来自于----《流浪地球》。
步入我们的正题Ajax,这个话题也是面试的一个热点。我讲的是原理,不喜欢讲第三方库,因为第三方库是为了实战的方便而已,对于我们学习没有太多的帮助。反而会形成一种依赖性。
这篇文章的主题思路就是下面这几个问题,围绕这几个问题作为中心,有其他问题再去横向拓展。
1、为什么要使用ajax?
2、HTTP请求
3、HTTP状态码是什么?
4、创建ajax的步骤
第一个问题:为什么要使用ajax?
回到没有没有异步请求的世界里,你会发现很多问题。比如写简历需要写到全部信息完全好了才提交,提交了之后才能发现有没有问题。有了ajax之后的对比是在我们填写资料的同时,就会在我们不知觉的同时提交数据验证了。这就是我们有了ajax之后的世界。
第二个问题:什么是HTTP请求?
因为ajax是与服务器端进行数据交互的,所以就要用到我们的HTTP请求,一个完整的HTTP请求过程,通常有7个步骤。
1、建立TCP链接
2、由Web浏览器向服务器发送请求命令。
3、Web浏览器发送请求头信息。
4、Web服务器作出应答
5、Web服务器发送应答头信息
6、Web服务器向浏览器发送数据
7、Web服务器关闭TCP链接。
HTTP请求一般分成下面四部分
1、HTTP请求的方法:GET 或POST
2、正在请求的url地址
3、请求头
4、请求体
第三个问题:HTTP状态码是什么?
1xx:信息类,表示服务器收到Web浏览器的请求
2xx:成功,表示请求成功 。常见的有200
3xx:重定向,表示请求没有成功
4xx:客户端错误,常见有404 NOT Found
5xx:服务器错误
第四个问题:创建ajax的步骤
1、就是new 一个XMLHttpRequest对象
这里兼容性写法我就不说了。可以参考这里的:Ajax总结篇 - 简书
2、准备请求
request.open(method,url,async);open方法有三个参数
第一个参数GET或POST
第二个参数是要作为请求发送目标的URL。
第三个参数是一个布尔值,不填默认为true就是异步的意思。
3、发送请求
一般GET方法发送的请求的话send参数为空或者是null就行4、处理响应
onreadystatechange :当处理过程发生变化的时候执行下面的函数
思考一个问题:JSON.parse()的作用是什么?有没有其他方法? 发送完之后就需要上面这两个步骤,用一个事件监听,是否请求完成还有HTTP状态码就行,然后在请求完成的时候做些事情responseText:获得字符串的响应数据
responseXML:获得XML格式的响应数据(这个很少用了)
status和statusText:以文字和文本形式返回HTTP状态码。
readyState属性,下面数字代表的含义
0:请求未初始化,open没有调用
1:服务器连接已建立,open已经调用
2:请求已接收,接收到头信息
3、请求处理中,接收到主体信息
4:请求完成(前面的几个可以不记,哈哈,这个必须理解)
上面写的例子是GET方法,下面来一个post方法
多了一个步骤 这个步骤一定要写在open和send之间,表示设置发送的数据类型。本文如有侵权,联系作者删除
网友评论