1.ajax
ajax是7种技术的综合,常用到的:html+css javascript XML(xmlHttpRequest对象)
2,ajax可以理解成是javascript通过操作XML(xmlHttpRequest对象)来完成请求的过程
3,什么时候适合使用ajax?
(1)频繁的对数据库(服务器)进行操作的时候
(2)无刷新页面的请求(表单验证)
需要javascript和数据库交互
需要:javascript想要验证用户名有没有重复,需要去数据库查询,但是密码,email是没有必要提交过去的,而且 对服务器是一种负担;
Ajax:原则: 按需取数据 这样可以降低服务器的压力
验证用户名不能重复
1,现有控制器(前台注册user控制器)对应的动作
2,试图层
3,代码
2,get方式发送ajax请求
模型层原则:一张表对应一个模型
1.实例化XMLHttpRequest对象
步骤:1
XMLHttpRequest这个对象和php交互 先获得这个对象
var xhr;
if(window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}
2,open()打开地址栏 //open()方法有3个参数 1,请求的方式;2,请求的url,3,是否为异步请求
var url = "index.php?c=user&a=search"; //这个请求的地址是服务器端的地址
xhr.open("GET",url,true);
3,监听ajax请求的状态
xhr.onreadystatechange=callback;
4,send()完成ajax请求
xhr.send();
5,
回调函数
function callback(){
if(xhr.readyState==4){//表示请求已经发送
if(xhr.status==200)//请求已经发送成功
xhr.responseText //获得服务器相应的数据。
}
}
GET方式请求 需要注意
浏览器为了提高访问同一页面的速度,会先将我们访问的数据缓存起来,如果地址不变,相当于访问的是用一个页面,这时浏览器读取的是缓存的数据而不是真实的页面数据解决方法
在地址栏传递随机数(可以是当前时间,也可以是随机数)
json格式发送集合类的数据
服务器返回给浏览器返回2种数据
1,字符串,接收:xhr.responseText;
2,集合类
ajax就是javascript通过操作XMLHttpRequest对象完成http请求
服务器如何给浏览器返回集合类的数据
json_encode()编码后 返回的是json格式的字符串,(仍然是字符串),思路:如何让这个json格式的字符串转化成一个对象
1,先将字符串运行一下通过在字符串上()
2,eval()运行即可;
POST方式提交需要注意
Xhr.setRequestHeader("Content-Type","application/x-www-form-urlencodedd");
需要注意:
实例化XMLHttpRequest对象时,IE浏览器(new ActiveXObject(“Microsoft.XMLHTTP");
xhr = new ActionXOject("Microsoft.XMLHTTP");
2,信息浮动显示
异步的概念
XMLHttpRequest对象把数据传递大服务器的地址后,服务器处理他们的,我浏览器处理我的,这样可以减少用户的等待时间,如果是同步或阻塞,必须要等到服务器返回结果后,我浏览器才处理器才能处理我的事情,如果数据量大的话,用户等待的时间就特别长
Ajax请求和传统的web请求:
Ajax请求:XMLHttpRequest对象发送的请求
var url = "index.php?c=user&a=ajax_check&time="+Math.random()+"&username="+username.value;
传统的web请求:
<form action="index.php" method="post">