何为Ajax
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
例子:网页的验证登陆(防止自动刷新)
AJAX = 异步 JavaScript 和 XML。
AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。
实例:
修改内容:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script> function loadXMLDoc() { var xmlhttp; if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码 xmlhttp=new XMLHttpRequest(); } else { // IE6, IE5 浏览器执行代码 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","/try/ajax/ajax_info.txt",true); xmlhttp.send(); } </script> </head> <body> <div id="myDiv"><h2>使用 AJAX 修改该文本内容</h2></div> <button type="button" onclick="loadXMLDoc()">修改内容</button> </body> </html>
操作方式
1、js操作方式
①创建ajax对象
var xhr = new XMLHttpRequest();
②发起请求
xhr.open('get','fwq.php?name=zhangsan&age=123');
xhr.open('post','index.html?name=zhangsan&age=123');
注:两种方式get post
两者区别
① 给服务器传递数据量不同
get最多是2k post原则没有限制,php.ini对其限制为8M
② 安全方面,post传递数据较安全
③ 传递数据的形式不一样
get方式在url地址后边以请求字符串形式传递参数
http://网址/index.php?name=tom&age=23&addr=beijing
蓝色部分就是请求字符串,就是一些“名-值”对,中间使用&符号连接。
post方式是把form表单的数据给请求出来以xml形式传递给服务器
③传数据
xhr.send(null);
④监听ajax状态
xhr.onreadystatechange=function(){
if(xhr.readyState == 4){
}
}
状态表示
0(为初始化)
1(初始化)
2(发送数据)
3(数据传送中)
4(完成)
⑤得到返回
xhr.responseText
2、jquery操作方式
$ajax({
async:true,//ajax请求方式
url:"fuq.php",//地址
data:{name:"zhangsan",age:12},//传值
type:"post"//传值方式
dataType:"text",//返回值格式
success:function(data){
}
});//处理
注:请求方式
true(异步) false(同步)
异步:同一个时间点允许执行多个进程。
同步:同一个时间点只允许执行一个进程。
默认是true(异步)
何时用同步
ajax绝大多数情况下进行异步请求,但是有的时候也要使用“同步请求”(其不能被取代)。
例如页面有两部分内容,一前一后,ajax请求和正常的html内容输出,如果html的输出内容包括ajax请求的内容,
就需要使得ajax请求完成了再进行html内容的输出,这样就要设置两者一前一后调用(而非同时调用),此时要使用同步请求。