Ajax的学习与使用

  要想应用Ajax,首先必须搞清楚Ajax的执行原理:一个Ajax交互从一个称为XMLHttpRequest的JavaScript对象开始。如同名字所暗示的,它允许一个客户端脚本来执行HTTP请求,并且将会解析一个XML格式的服务器响应。Ajax处理过程中的第一步是创建一个XMLHttpRequest实例。使用HTTP方法(GET或POST)来处理请求,并将目标URL设置到XMLHttpRequest对象上。
  当你发送HTTP请求,你不希望浏览器挂起并等待服务器的响应,取而代之的是,你希望通过页面继续响应用户的界面交互,并在服务器响应真正到达后处理它们。要完成它,你可以向XMLHttpRequest注册一个回调函数,并异步地派发XMLHttpRequest请求。控制权马上就被返回到浏览器,当服务器响应到达时,回调函数将会被调用。

  看这些你可能看不懂,太抽象了!下面我给个Ajax的实际例子:
1. 初始化Ajax
  Ajax实际上就是调用了XMLHttpRequest对象,那么首先我们的就必须调用这个对象,我们构建一个初始化Ajax的函数:

 function InitAjax()
  {
 var ajax=false;
 try
 {
  ajax = new ActiveXObject("Msxml2.XMLHTTP");
 }
 catch (e)
 {
    try
  {
     ajax = new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch (E)
  {
      ajax = false;
    }
      }
 if (!ajax && typeof XMLHttpRequest!='undefined')
 {
    ajax = new XMLHttpRequest();
  }
  return ajax;
  }
我们在执行任何Ajax操作之前,都必须先调用InitAjax()函数来实例化一个Ajax对象。这个函数可以作为一个通用函数来用,当然这个函数也有其他的写法,此处写的比较简单,因为大多数浏览器都支持Ajax。

2. 使用Get方式
  现在我们第一步来执行一个Get请求,加入我们需要获取 /show.php?id=1的数据,那么我们应该怎么做呢?
  假设有一个链接:<a href="/show.php?id=1">新闻1</a>,我点该链接的时候,不想任何刷新就能够看到链接的内容,那么我们该怎么做呢?
   
    //将链接改为:
    <a href="#" onClick="getNews(1)">新闻1</a>
   //并且设置一个接收新闻的层,并且设置为不显示:
   <div id="show_news"></div>
   同时构造相应的JavaScript函数:
   function getNews(newsID)
  {
  //如果没有把参数newsID传进来
  if (typeof(newsID) == 'undefined')
  {
   return false;
  }
  //需要进行Ajax的URL地址
  var url = "/show.php?id="+ newsID;
    //获取新闻显示层的位置
  var show = document.getElementById("show_news");
  //实例化Ajax对象
  var ajax = InitAjax();
  //使用Get方式进行请求
  ajax.open("GET", url, true);
  //获取执行状态
  ajax.onreadystatechange = function() {
  //如果执行是状态正常,那么就把返回的内容赋值给上面指定的层
  if (ajax.readyState == 4 && ajax.status == 200)
   {
    show.innerHTML = ajax.responseText;
  }
  }
  //发送空
  ajax.send(null);
 }
当用户点击“新闻1”这个链接的时候,在下面对应的层将显示获取的内容,而且页面没有任何刷新。当然,上面省略了show.php这个文件,我们只是假设show.php文件存在,并且能够正常工作的从数据库中把id为1的新闻提取出来。这种方式适应于页面中任何元素,包括表单等等,其实在应用中,对表单的操作是比较多的,针对表单,更多使用的是POST方式。


下面是我做的一个简单的例子:
1、test.php文件代码:




ajax测试页




 
   
 
 
   
 
 
   
 
 
 
 



 

2、images.php文件代码:




图片


$id=$_GET["picture"];
if($id==1)
{
 printf("");
}
if($id==2)
{
 printf("");
}
if($id==3)
{
 printf("");
}
?>

只要在images文件夹下有这三个图片就可以了!

 

 

 

你可能感兴趣的:(PHP)