学习笔记0920

  1. 1. Ajax

Ajax

  1. 客户端和服务器交互模型

客户端(client)包括:桌面 浏览器 移动应用等

服务器(应用程序的后台 server)包括:web服务器、数据库服务器等

数据的传送方式

推送:服务器主动给客户端发送数据

拉取:客服端向服务器请求数据

输入表单

需要做数据的校验:包括 数据格式的校验,数据准确性/是否存在的校验。

例子:去淘宝网注册,我们需要输入用户名,密码,个人邮箱/电话号码

数据格式的校验:用户名的长度是否符合要求,用户名的字符是否符合要求。

格式的校验在前台就可以校验

数据的准确性/是否存在的校验:需要和后台/服务器中进行校验

客户端和服务器的交互模型

  1. HTTP协议

Hypertext transfer protocal ->超文本传输协议

规定了客户端和服务器之间数据通信的

传输协议:让客户端和服务器端能够正确的沟通

HTTP 是基于请求/响应模式的协议 request/response

URL:统一资源定位器,用于访问网络上的资源

Schema://host[:port#]/path/…./[?query-string]

Schema:指的是底层使用的协议 比如:http https(可以加密传输的内容) ftp

Host:HTTP的ip/域名

Port:http默认端口号是80,通常默认端口号80 可以不用写

Path:相对路径

Query String:发送给服务器的数据

  1. GET请求和post请求

GET请求:明文请求 会在URL后面以问号形式添加明文信息(问号后面是请求信息(query string)),get的请求在url后,平时上网的时候,url是用户可见的,所以请求的信息也是用户可见的。一般用在不是特别秘密的情况下

Get对请求的信息有长度的限制,不能放过长的信息

Post请求:密文请求,请求的信息放在请求体中,信息不会明显的暴露在用户面前,POST一般用在相对秘密/不想让别人知道请求信息的场合

Get和psot应用场合

  1. 1)如果请求的数据量过大的时候,或者上传数据用post

  2. 2)Get请求安全性比较差,如果需要的请求比较秘密的时候,需要用post

  3. 3)查询数据的情况,可以使用get

  4. 4)增加,删除,修改的情况,使用post

  5. 同步交互和异步交互

同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能做任何操作

异步:请求通过事件触发->服务器处理(客户端浏览器可以做其他的事情)->处理完毕

差别:同步客户端需要等待;异步客户端不需要等待

  1. AJAX

Asynchronous Javascript And XML(异步的Javascript和XML)

用Javascript向服务器发送请求,返回的数据是XML格式的

XML格式:

<person>

<name>John</name>

<height>133</height>

</person>

Json格式:

{‘name’:’John’,’height’:180}

AJAX 最大的特点是异步发送请求,可以局部刷新页面

  1. AJAX的编程步骤

  2. 1)创建请求对象

Var xhr;

Try{

//正常浏览器

Xhr= new XMLHttpRequest()}

Cathc(e){

Try{

//IE6

Xhr= new ActiveXObject(‘Msxml2.XMLHTTP’);

}catch(e){

//IE5.5及更早

Xhr=new ActiveXObject(’Microsoft.XMLHTTP’);

}

}

  1. 2)打开与服务器的连接

Open(method,url,async)

Method:请求方式 psot/get

url:请求的地址

async:是否发送异步请求 数据类型 boolean 默认的我们使用true(代表发送异步请求)

  1. 3)发送请求

Send()

  1. 4)接收服务器的响应

Onreadystatechange事件(xhr.redaystate状态码改变是触发的事件,会在状态码为2,3,4的时候触发)

XMLHTTPRequest(请求对象)发送请求以后(第三步骤),会有服务器的反馈,也就是5中状态码

0:只是创建了请求对象,还没有调用open()方法(只执行了第一步还没有执行第二部)

1:调用了open方法,但是还没有调用send()方法(只执行了第二部,还没执行第三部)

2:已经调用了send()方法

3:开始接受服务器的响应,还没接受完

4:接收完服务器的响应

Xhr。Readystate===4的时候(接收完服务器的响应)

服务器响应时候的状态码

200:响应是正常的(正是我们想要的结果)

404:找不到要访问的页面(在服务器上没有这个页面)

500:服务器的内部错误

。。。。

服务器的响应数据:xhr.responseText

  1. AJAX的认识

例子1:访问服务器上的Json文件