1、什么是 AJAX?
是一种可以在无需加载整个网页的情况下,能够更新部分网页的一种技术。
2、同步和异步?
**同步:**当客户端发起一个请求,服务器进行处理然后响应,在这个过程中页面完全处于等待状态。当服务器响应完成,页面会重新载入,这个时候如果出现错误,需要重新发起请求。
**异步:**当客户端发起一个请求,服务器端进行处理然后响应,在这个过程中客户端依然可以操作其他内容,客户端和服务器端互相之间不会有堵塞。数据会实时的在页面上呈现出来,并不会去整体的刷新网页。
3、如何创建 XHR?
var request = new XMLHttpRequest();
4、什么是 HTTP?
http 其实就是计算机通过网络通讯的一种规则。
5、什么是请求?
客户端(浏览器)向服务器(web 服务器)去发送信息和服务。
6、http 请求的组成?
- 创建 TCP 链接
- web 浏览器向 web 服务器发送请求命令
- web 浏览器发送请求头信息
- web 服务器需要做出应答
- web 服务器发送响应头信息
- web 服务器向浏览器发送数据
- web 服务器关闭 TCP 链接
7、如何发送请求?
open(method, url, async)
send()
8、什么是响应?
服务器接收到浏览器请求后作出的处理以及返回的数据。
9、http 响应的组成?
- 成功还是失败
- 响应头:服务器的类型、时间、内容类型、长度
- 响应体:响应的正文
10、状态码
状态码的组成:由3位数字构成,其中首位数字定义了状态码的类型。
- 1xx:信息类,表示收到 web 浏览器的请求,正在进一步处理
- 2xx:成功,表示用户请求被正确接收,理解,处理
- 3xx:重定向,表示请求没有成功,必须采取进一步的动作
- 4xx:客户端发生错误,一般表示客户端提交的请求有错误
- 5xx:服务器发生错误,表示服务器不能完成对请求的处理,一般是服务器端逻辑有错误
11、get 和 post 的区别?
get:通过 url 传递参数,一般是用于信息的获取。明文的形式,对所有人都可见,发送信息的数量有显示,一般 2000 个字符左右,幂等(不管执行多少次 get 请求,数据都不会发生变化)
post:参数传递不需要通过 url 拼接字符串的形式来执行,通过 send 方法直接传递。一般用于修改服务器上的资源,对于所发送的信息数量没有限制。
区别:
- 参数传递方式不同
- 安全性不同
- 实际使用中的方式不同
12、JSON 的解析?
eval(’(+xx+)’); 不只是解析 json 字符串,还执行 json 字符串中的 js 方法。
JSON.parse(); 尽量使用它来解析 json 字符串,使用可以给我们报出 json 字符串中的错误,既安全又方便。
13、域名以及跨域?
域名的组成部分解析:
http://(协议)www(子域名).abc.com(主域名):8080(端口号)/script/jquery.js
跨域:
当协议、子域名、主域名、端口号其中任意一个不相同时,都算作不同域
当不同域之间相互请求资源,就算作 “跨域”
14、JQuery 对 Ajax 的封装
- $.get(url, [data], [callback], dataType)
- $.post(url, [data], [callback], dataType)
- $.load() 可以载入远程Html代码插入到制定的DOM中
$('.box').load(url, [data], [callback]);
// load 无论 AJAX 请求是否成功,本身只要请求完成,它的回掉函数就会被出发。