Ajax:Aysnchronous Javascript and xml(异步JS和XML技术)
1. Ajax是什么(数据交互)
是指一种创建交互式网页应用的网页开发技术
京东 的用户名验证
严选网站的新品首发,商品原先是8个,点击之后数量增加
简书
当浏览器滚动的时候,在底部追加新的文章
点击”阅读更多“的时候,在底部追加新文章
共同的特点:页面没有刷新,但是得到了网站服务器上最新的数据(新用户明是否注册,严选商品数量增加,简书文章数据增加)
上述功能的实现,就得通过AJax来去做
刷新浪微博,访问新浪页面
购买商品:访问jd.com
百度:baidu.com
共同的特点:在url地址栏输入地址,或者点击对应的链接,跳转刷新到对应的页面
2. 浏览器(客户端)和服务器
浏览器:谷歌浏览器,火狐,IE
访问页面
服务器:就是一台(多台)电脑,这台电脑基本上没有显示器
提供网页内容:在服务器上某个文件夹下,存储我们写好的页面,24小时联网
服务器:
阿里云服务器:600-700元一年
淘宝虚拟空间:30-100元不等
新浪SAE:一天1毛
wamp软件:将自己的电脑模拟成一台服务器
wamp:
w:windows操作系统
a:apache(服务器的一个软件)
m:mysql
p:php
安装完成:访问localhost/127.0.0.1,成功访问到页面,就是正确
(C:\Windows\System32\drivers\etc)
开发期间本地测试,wamp就是我们最好的选择
3. 浏览器和服务器的交互
字符串
‘hello world‘
XML:保存数据(HTML格式化页面内容输出)
XML也用户保存和传递数据,但是格式比较麻烦
JSON数据
{“username”:"zhangsan","age":20}
JSON属性都是双引号
JSON只代表数据,没有方法(函数)
4. 注释
1. wamp都装在 d:wamp下
2. wamp所有的文件全部删除
5.onreadystatechange 和 onload
//get
var xhr = new XMLHttpRequest(); // 创建XML HTTP协议请求
xhr.open(‘GET‘,‘URL地址?参数‘,true|false) // 配置 true:异步传输 false:同步传输,基本上都是true异步传输
xhr.send();发送
xhr.onreadystatechange = functioin(){
if(xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText);//接受返回结果
}
}
onreadystatachange:存储函数,每当readyStata属性改变时,就会调用该函数。
readyStata:有XMLHttpRequest的状态(0到4)
0:请求未初始化
1:服务器连接已建立
2:请求已接收
3:请求处理中
4:请求已完成,响应已就绪
status:200表示"ok",404表示”未找到页面“
2、当readyStata等于4且状态为200时,表示响应已就绪
xhr.onload = function(){} // 执行完就加载
//POST
var xhr = new XMLHttpRequest();
xhr.open(‘POST‘,‘url地址‘,true|false);
xhr.setRequestHeader(‘Content-type‘, ‘application/x-www-form-urlencoded‘);
xhr.send();
xhr.onload = function(){}
6.GET和POST
get和post
get:获取
1.所有的a链接都是get请求,如果有参数,参数会显示在URL地址的后面
baidu.com?username=zhangsan&age=20&sex=nan(不安全)
2. get请求不能传文件
post:发送
1.设置表单的method为post的时候,表单的值需要传递给服务器,但是不会显示在URL地址栏(相对安全)
2. 传送文件
get和post的原生Ajax请求过程没有本质的不同
get请求,参数直接写在URL地址栏的后面
post请求
1. 参数必须在send里面
2. 必须设置setRequestHeader()头信息