php ajax 原理,Ajax原理与应用案例快速入门教程

本文实例讲述了Ajax原理与应用。分享给大家供大家参考,具体如下:

Ajax原理:页面不刷新的情况下,利用XMLHttpRequest对象发送HTTP请求,然后根据返回的内容进行相应的业务逻辑

使用Ajax的步骤:

(1)创建XMLHttpRequest对象

(2)发送http请求

(3)根据服务器返回的内容进行相应的操作

一步一步来说哈!

1、创建XMLHttpRequest对象

先看看w3c给出的信息

60dc8c9922d7e8e4b046ea81369bc7ef.png

也就是说,如果要使用XMLHttpRequest对象还必须考虑浏览器的兼容型,因此可以封装一个方法来创建XMLHttpRequest对象。

//创建XMLHttpRequest对象

function createXhr(){

var xhr = null;

if(window.XMLHttpRequest){

xhr = new XMLHttpRequest();//谷歌、火狐等浏览器

}else if(window.ActiveXObject){

xhr = new ActiveXObject("Microsoft.XMLHTTP");//ie低版本

}

return xhr;

}

2、发送Http请求

Http简述:

学过http请求的同学应该都知道,一个简单的请求应该包含这几部分内容,分别请求方法、主机、路径、协议版本等。

Telnet发送http请求截图:

b26fec7e12f9d6ce62a0cd5aec6bdf57.png

Ajax中的Http请求:

在这里只用给出请求方法、路径。但是还有一个是请求方式,分为同步和异步,先不说同步和异步的差别,true表示异步,false表示同步。

xhr.open('GET','./05-ajax-vote.php',true);//确定请求的路径

xhr.send(null);//发送请求,携带数据为空

案例:

Ajax异步投票程序

文件结构图:

7a4ac40bf2ed3b2c982299fdccdbfb7e.png

05-ajax-vote.html文件:

点击投票按钮,调用vote函数,然后穿件xhr对象,发送http请求,此处使用的是异步,并且实现了状态回调函数,然后在里面判断投票是否成功。

无刷新投票界面

//创建XMLHttpRequest对象

function createXhr(){

var xhr = null;

if(window.XMLHttpRequest){

xhr = new XMLHttpRequest();//谷歌、火狐等浏览器

}else if(window.ActiveXObject){

xhr = new ActiveXObject("Microsoft.XMLHTTP");//ie低版本

}

return xhr;

}

//ajax投票

function vote(){

//1、创建xhr对象

var xhr = createXhr();

//2、确定请求方法、路径、请求方式为异步

xhr.open('GET','./05-ajax-vote.php',true);

//3、发送请求

xhr.send(null);

//4、异步方式设置回调

xhr.onreadystatechange = function(){

//如果准备状态为4,表示执行结束

if(this.readyState == 4){

//根据服务端返回的标识来提示用户投票是否成功

if(xhr.responseText == '1'){

alert('投票成功');

}else{

alert('投票失败');

}

}

}

}

无刷新投票界面

lin.jpg

投票

05-ajax-vote.php文件:

以随机数的形式来模拟投票是否成功,如果成功则往05-ajax-vote-res.txt文件中增1,并返回表示1,失败则返回表示0。

/**

* ajax投票程序

* @author webbc

*/

if(rand(0,10) > 4){

echo '0';//返回“投票失败”标识

}else{

$number = file_get_contents('./05-ajax-vote-res.txt');

$number++;

file_put_contents('./05-ajax-vote-res.txt',$number);

echo '1';//返回“投票成功”标识

}

?>

效果图:

85b80bf77b46f66b9bc585e784a9b1c0.gif

同步和异步的区别:

同步:当xhr对象发送请求后,此时本页面脚本执行被中断,会等待该请求(05-ajax-vote.php)执行结束,才会回到断点继续执行发送请求后的操作。

异步:当xhr对象发送请求后,不需要等待发出的请求(05-ajax-vote.php)被执行结束,而是接着从发送请求的语句的后续继续执行

注意:如果采用异步方式请求某地址,如果要使用该地址返回的内容,则必须要设置状态回调函数,在回调函数中操作从服务器返回的内容,该回调函数会在该请求完成后被执行。

希望本文所述对大家ajax程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值