黑马程序员技术交流社区
标题: 【济南校区】PHP模块讲解之ajax [打印本页]
作者: 小鲁哥哥 时间: 2018-1-10 11:52
标题: 【济南校区】PHP模块讲解之ajax
本帖最后由 小鲁哥哥 于 2018-1-12 16:43 编辑
好多小伙伴们都在询问异步请求,今天我们就来介绍一下ajax
一、简介
1、 什么是Ajax
AJAX = Asynchronous JavaScript and XML(异步的JavaScript 和 XML)。
AJAX 不是新的编程语言,而是一种使用现有标准的新方法。
AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。
AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。
就是利用javascript和xml实现与服务器异步交互的技术
xml:保存、传输
json:保存、传输
2、 发展历程
98年 微软
05年 谷歌
支持ajax技术的浏览器:
• Google Chrome
• Mozilla
• Firefox
• Internet Explorer
• Opera
• Konqueror
• Safari
3、 运行原理
1) 传统的web应用程序工作原理
2) Ajax程序工作原理图
4、 快速入门
html
[JavaScript] 纯文本查看 复制代码
window.onload = function(){
document.getElementById('btnOk').onclick = function(){
var xhr = new XMLHttpRequest();
xhr.open('get','demo01.php');
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
alert(xhr.responseText);
}
}
xhr.send(null);
}
}
php:
如果想使用Ajax技术,必须首先创建一个Ajax对象。
二、Ajax对象
1、 创建Ajax对象
1)IE
var xhr=newActiveXObject(“Microsoft.XMLHTTP”);
[JavaScript] 纯文本查看 复制代码
<script>
//IE版本创建ajax对象
var xhr = new ActiveXObject('Microsoft.XMLHTTP');
alert(xhr.readyState);
</script>
2) W3C
var xhr=new XMLHttpRequest();
[JavaScript] 纯文本查看 复制代码
<script>
//W3C创建ajax对象
var xhr = new XMLHttpRequest();
alert(xhr.readyState);
</script>
2、 解决兼容性
无论客户端使用哪种浏览器,都可以得到相应的Ajax对象
创建一个public.js的公共文件,封装一个方法,返回正确的对象
1) 方法
[JavaScript] 纯文本查看 复制代码
<script>
var xhr;
if(window.navigator.userAgent.indexOf('MSIE')>0){
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}else{
xhr = new XMLHttpRequest();
}
return xhr;
</script>
2) 方法
[JavaScript] 纯文本查看 复制代码
<script>
try{return new XMLHttpRequest();}catch(e){}
try{return new ActiveXObject('Microsoft.XMLHTTP');}catch(e){}
alert('您的浏览器过于古老,请更换浏览器');
</script>
public.js
[JavaScript] 纯文本查看 复制代码
<script>
function createxhr(){
try{return new XMLHttpRequest();}catch(e){}
try{return new ActiveXObject('Microsoft.XMLHTTP');}catch(e){}
alert('您的浏览器过于古老,请更换浏览器');
}
</script>
html:
[HTML] 纯文本查看 复制代码
<!DOCTYPE HTML>
<html>
<script type="public.js"></script>
<body>
<script type="text/javascript">
window.onload = function(){
document.getElementById('btnOk').onclick = function(){
var xhr = createxhr();
alert(xhr.readyState);
}
}
</script>
<input type="button" id="btnOk" value="确定">
</body>
</html>
3、 相关属性和方法
• onreadystatechange:当对象的状态码发生改变时所触发的回调函数
• readyState :对象的状态码
0 :当对象创建后 new
1 :当对象初初始化之后 open
2 :发送请求后 send
3 :接收到数据
4 :接收数据完毕后
• status :对象的响应状态码 200 404 304 302
• statusText :对象的响应状态文本 OK NOT FOUND
• responseText :对象的响应内容,字符串数据 text/html
• responseXML :对象的响应内容,xml数据 text/xml
• open(method,url) :初始化Ajax对象的信息
method:请求方式 get/post
url:请求地址
• setRequestHeader(header,value) :设置请求头信息
header:头的名字
value:头信息的值 当发送post请求时必须调用此方法
• send(content) : 发送请求 只有执行到这个方法时,ajax对象才会真正发送请求
content:参数信息
代码示例:
Ajax对象的状态码
[HTML] 纯文本查看 复制代码
<!DOCTYPE HTML>
<html>
<script type="public.js"></script>
<body>
<script type="text/javascript">
window.onload = function(){
document.getElementById('btnOk').onclick = function(){
var xhr = createxhr();
xhr.open('get','demo01.php');
xhr.onreadystatechange = function(){
if (xhr.readyState ==4) {
alert(xhr.responseText);
}
}
xhr.send(null);
}
}
</script>
<input type="button" id="btnOk" value="确定">
</body>
</html>
到此为止,ajax的基本原理就给大家介绍到这里,不知道大家对我今天讲解的ajax的原理理解的如何,有什么问题可以在下面留言哦~
如果你想了解更多黑马课程请点击这里,如果你想加入黑马这个大家庭学习先进技术,广交天下好友! 黑马程序员济南中心联系电话:0531-55696830
作者: pysl 时间: 2018-7-25 07:11
学习,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |