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代码如下:

FirstTest.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代码如下:

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

  open():

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

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

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

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

  具体的JS代码实现如下:

  在上段代码中,请求的名字是:"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上。因为从后台返回的数据可能是错误的,所以在回调函数中首先要判断后台返回的信息是否正确,如果正确才可以继续执行。代码如下:

  在上面代码中,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()方法。代码如下:

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

FirstTest.html

  3、后台部分

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

  (1)struts-config文件:

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

ajaxTest

  至此后台代码完成。

时间: 2024-08-28 10:05:02

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基础实例(二)

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

【javascript】ajax 基础 --本文转载

[javascript]ajax 基础 什么是 ajax ajax 即"Asynchronous JavaScript and XML"(异步 JavaScript 和 XML),也就是无刷新数据读取. http 请求 首先需要了解 http 请求的方法(GET 和 POST). GET 用于获取数据.GET 是在 URL 中传递数据,它的安全性低,容量低. POST 用于上传数据.POST 安全性一般,容量几乎无限. ajax 请求 ajax 请求一般分成 4 个步骤. 1.创建 a

基于JS的DOM 编程基础和Json语法及JS下的AJAX基础

1.在dom编程中:     注意:使用dom操作一般在页面完全载入之后,一般在window_onload事件里操作dom nodeName  表示节点的名称如:<input   type= "button"  value="确定" />    此时nodeName=“input” ; nodeValue  表示节点的值如<p>aaa</p> 此时的nodeValue="aaa",而nodeName="

【Java EE 学习第31天】【JavaScript基础增强】【Ajax基础】【Json基础】

一.JavaScript基础增强 1.弹窗 (1)使用window对象的showModelDialog方法和showModelessDialog方法分别可以弹出模式窗口和非模式窗口,但是只能在IE中使用,所以不推荐使用,最好使用open方法弹窗. (2)open方法. (3)open方法弹窗实例. Base.html文档: <!DOCTYPE html> <html> <head> <title>Base.html</title> <met

【javascript】ajax 基础

什么是 ajax ajax 即“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),也就是无刷新数据读取. http 请求 首先需要了解 http 请求的方法(GET 和 POST). GET 用于获取数据.GET 是在 URL 中传递数据,它的安全性低,容量低. POST 用于上传数据.POST 安全性一般,容量几乎无限. ajax 请求 ajax 请求一般分成 4 个步骤. 1.创建 ajax 对象 在创建对象时,有兼容问题: var

C#基于数据库存储过程的AJAX分页实例

本文实例讲述了C#基于数据库存储过程的AJAX分页实现方法.分享给大家供大家参考.具体如下: 首先我们在数据库(SQL Server)中声明定义存储过程 代码如下: use sales    –指定数据库 if(exists(select * from sys.objects where name='proc_location_Paging')) –如果这个proc_location_paging存储过程存在则删除 drop proc proc_location_Paging go create

网页设计Dreamweaver网页制作 商业网站建设案例课程 ASP.NET基础实例教程 淘宝开店教程

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut

Oracle PL/SQL 编程基础 实例

create table mytest(name varchar(20),password varchar(30)); create or replace procedure sp_pro2 is begin insert into mytest values('fc','123'); end; 查看错误信息 show error 如何调用该过程: 1, exec 过程名 (参数,..) 2.  call 过程名 (参数  ) set server output on begin dbms_ou