快速掌握Ajax-Ajax基础实例

  AJAX即“Asynchronous JavaScript and XML”,意思是异步JavaScript和XML,是指一种创建交互式网页的网页开发技术。

  虽然现在很少有人去自己手动写AJAX,大多数都用封装好的AJAX,但我觉得初学者还是应该从最原始的AJAX开始学习,这样才能掌握 AJAX的核心。现在各种博客上讲解AJAX的比较多,但大多数都是只讲AJAX的前端部分,或者是只讲解一部分功能,并没有完成的实例。在这篇随笔里我 将通过实例来全面讲解AJAX的基础应用,其中也包括后台代码实现部分。

实例一:点击一个按钮,然后将信息显示到指定的div内。

  1、创建一个JAVA web工程,命名为AjaxTest。在webRoot创建一个HTML页面,命名为FirstTest.html,FirstTest.html代码如下:

<html>  <head>    <title>FirstTest.html</title>     <script language="javascript">        function onclickAjax(){

        }     </script>  </head>

  <body>    <input type="button" value="测试" onclick="onclickAjax()">    <div id="testid">    </div>  </body></html>

  在上面代码中给input绑定了点击事件onclickAjax(),这个onclickAjax()方法就是要实现Ajax的JS方法。

  2、实现onclickAjax方法

  为了方便理解,我给AJAX统一了一个流程,要想实现AJAX,就要按照以后步骤走:

  (1)创建XMLHttp对象。(2)设置请求方式。(3)调用回调函数。(4)发送请求。

  下面详细解释这4个步骤。

  (1)创建XMLHttp对象:XMLHttp对象用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

  创建XMLHttp对象的语法是:var xmlHttp=new XMLHttpRequest();如果是IE5或者IE6浏览器,则使用ActiveX对象,创建方法是:

var xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

  一般我们手写AJAX的时候,首先要判断该浏览器是否支持XMLHttpRequest对象,如果支持则创建该对象,如果不支持则创建ActiveX对象。JS代码如下:

var xmlHttp;if(window.XMLHttpRequest){    xmlHttp=new XMLHttpRequest();}else if(window.ActiveXObject){    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}

  (2)设置请求方式:在WEB开发中,请求有两种形式,一个是get 一个是post,所以在这里需要设置一下具体使用哪个请求,XMLHttpRequest对象的open()方法就是来设置请求方式的。

  open():

    功能:规定请求的类型、URL 以及是否异步处理请求。

    参数:参数1,设置请求类型(GET 或 POST),GET与POST的区别请自己百度一下,这里不做解释;

         参数2,文件在服务器上的位置;

         参数3,是否异步处理请求,是为true,否为false。

  具体的JS代码实现如下:

xmlHttp.open("POST","test.do?method=ajaxTest&&msg="+new Date(),true);

  在上段代码中,请求的名字是:"test.do?method=ajaxTest&&msg="+new Date(),后面有个new Date(),这里主要是防止缓存问题,如果是不段的更新页面内容,那么很可能就会出现点击按钮后内容页不改变,因为如果没有后面的msg=new Date()那么我们每一次发送的请求都是一样的,这样很可能就导致了缓存问题。所以需要在请求后面加上msg=new Date(),这样保障了每次的请求都不一样,避免缓存问题。

  (3)回调函数:

  如果在上一步中open方法的第三个参数选择的是true,那么当前就是异步请求,这个时候需要写一个回调函数,xmlHttp对象有一个onreadystatechange属性,这个属性返回的是一个匿名的方法,所以回调函数就在这里写xmlHttp.onreadystatechange=function{},function{}内部就是回调函数的内容。所谓回调函数,就是请求在后台处理完,再返回到前台所实现的功能。在这个例子里,我们的回调函数要实现的功能就是接收后台处理后反馈给前台的数据,然后将这个数据显示到指定的div上。因为从后台返回的数据可能是错误的,所以在回调函数中首先要判断后台返回的信息是否正确,如果正确才可以继续执行。代码如下:

if(xmlHttp.readyState==4){    if(xmlHttp.status==200){    document.getElementById("testid").value=xmlHttp.responseText;//将信息显示到页面 }else{    alert("AJAX服务器返回错误!");}    }

  在上面代码中,xmlHttp.readyState是存有XMLHttpRequest 的状态。从 0 到 4 发生变化。0: 请求未初始化。1: 服务器连接已建立。2: 请求已接收。3: 请求处理中。4: 请求已完成,且响应已就绪。所以这里我们判断只有当xmlHttp.readyState为4的时候才可以继续执行。

  xmlHttp.status是服务器返回的结果,其中200代表正确。404代表未找到页面,所以这里我们判断只有当xmlHttp.status等于200的时候才可以继续执行。

  document.getElementById("testid").value=xmlHttp.responseText;这段代码就是回调函数的核心内容,就是获取后台返回的数据,然后将这个数据赋值给id为testid的div。xmlHttp对象有两个属性都可以获取后台返回的数据,分别是:responseText和responseXML,其中responseText是用来获得字符串形式的响应数据,responseXML是用来获得 XML 形式的响应数据。至于选择哪一个是取决于后台给返回的数据的,这个例子里我们只是显示一条字符串数据所以选择的是responseText。responseXML将会在以后的例子中介绍。

  (4)发送请求:发送请求是调用xmlHttp对象的send()方法。代码如下:

xmlHttp.send();

  综合以上讲解,整个FirstTest.html页面的代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>FirstTest.html</title>     <script language="javascript">        function onclickAjax(){            var xmlHttp;            //分浏览器创建XMLHttp对象if(window.XMLHttpRequest){                xmlHttp=new XMLHttpRequest();            }else if(window.ActiveXObject){                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP")            }            //设置请求类型            xmlHttp.open("POST","test.do?method=ajaxTest&&msg="+new Date(),true);            //回调函数            xmlHttp.onreadystatechange=function(){                if(xmlHttp.readyState==4){                    if(xmlHttp.status==200){                        document.getElementById("testid").value=xmlHttp.responseText;                    }else{                        alert("AJAX服务器返回错误!");                    }                    }            }            //发送请求            xmlHttp.send();        }     </script>  </head>

  <body>    <input type="button" value="测试" onclick="onclickAjax()">    <div id="testid">    </div>  </body></html>

  3、后台部分

  这个例子的后台部分使用JAVA来写,主要应用了struts1框架。

  (1)struts-config文件:

<struts-config>  <form-beans />  <action-mappings>      <action path="/test" type="com.test.controller.AjaxController" parameter="method" scope="request">      </action>  </action-mappings>  <message-resources parameter="com.test.controller.ApplicationResources" /></struts-config>

  (2)在包com.test.controller包下创建类AjaxController,并继承DispatchAction,重写execute方法并将该方法命名为ajaxTest。该方法代码如下:

public ActionForward ajaxTest(ActionMapping mapping, ActionForm form,            HttpServletRequest request, HttpServletResponse response)            throws Exception {        String msg="第一个AJAX小程序";        response.getWriter().write(msg);        return null;    }

  至此后台代码完成。

时间: 2024-08-23 04:17:24

快速掌握Ajax-Ajax基础实例的相关文章

ajax 基础实例

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 优点:使用ajax读取数据文件,不需要刷新页面就能取出文件数据<br><br><br><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition

Ajax基础实例(一)

AJAX即"Asynchronous JavaScript and XML",意思是异步JavaScript和XML,是指一种创建交互式网页的网页开发技术. 虽然现在很少有人去自己手动写AJAX,大多数都用封装好的AJAX,但我觉得初学者还是应该从最原始的AJAX开始学习,这样才能掌握AJAX的核心.现在各种博客上讲解AJAX的比较多,但大多数都是只讲AJAX的前端部分,或者是只讲解一部分功能,并没有完成的实例.在这篇随笔里我将通过实例来全面讲解AJAX的基础应用,其中也包括后台代码实

Ajax基础实例(二)

用了很久的Asp.Net Ajax,也看了段时间的jquery中ajax的应用,但到头来,居然想不起xmlHttpRequest的该如何使用了. 以前记的也不怎么清楚,这次就重新完整的学习一遍吧,也为了自己以后能找个完整的地方来复习. 什么是Ajax Ajax的全称是Asynchronous Javascript And XML.AJax由HTML,Javascript,DHTML和DOM组成. HTML用于建立Web表单 Javascript代码用于运行Ajax应用程序的核心代码,用于和服务器

关于AJAX的基础操作

AJAX开发 AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和XML(标准通用标记语言的子集). AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必须重载

ajax——dom基础

javascript中dom实现可以使我们在ajax中通过javascript代码对html和xml数据进行dom方式操作,从而做到页面的动态修改更新和数据的提取处理. dom概念 dom文档对象模型,允许程序和脚本动态访问和更新文档的内容,结构和风格. dom对象树 在浏览器中一个页面对应一个html文档,因此有一个与之对应的html的dom树. 例如: 在浏览器中一个页面可能处理多个xml文档,因此可能有多个xml的dom树. dom对象树中常用的节点 在dom树中,文档内容中对应了很多不同

php页面get方法实现ajax,入门实例教程

ajax,入门实例教程 本例针对php页面,做了一个小的demo加深对ajax的理解 1.文档结构: 共有ajax.php 和action.php 2个页面. 2.源码如下: /*ajax.php页面*/<!DOCTYPE html> <html lang="en"> <head> <title> ajax</title> <script type="text/javascript"> func

Ajax之基础

几个问题引发的思考:什么是Ajax?它是干什么的?在什么时候用?同步和异步又是什么?这一连串的问题让我问的我真是彻底伤心啦!按说前几集视频看完后,这几个问题就该解决了,但是自己却还是不懂.可见自己的学习方法真的有问题,有问题就要改嘛,现在就来解决下Ajax几个简单的问题. 什么是Ajax? AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScriptAnd XML).Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特之处,合在一起就成了一个功能强大

初步认识Ajax及其基础应用

初步认识Ajax及其基础应用 Ajax(Asynchronous JavaScript And XML)是服务器和客户端相结合的一种技术,由其英文单词可看出其包含JavaScript和XML,当然另外还包含CSS样式.XMLHttpRequest数据交互对象和DOM文档对象等技术. Ajax主要用于网页的局部刷新,用户在输入框中输入时激发文本框事件,该事件会激发JavaScript程序去响应服务器,由于JavaScript不支持服务器通信,因此需要 XMLHttpRequest与服务器进行交流:

Ajax全面基础学习(二)

两种配置ajax的方式 $.ajax('url',{ 配置ajax}); $.ajax({ url : 'url' 其他ajax配置}) ajax的回调函数 $.ajax('url',{ //请求成功的回调函数 success : function(data){console.log(arguments);}, //请求失败的回调函数 error : function(jqXHR,status,err){ //jqXHR:jQuery增强的xhr对象 //err:通过底层throw抛出的异常 }