首页 > 代码库 > Ajax的简单使用
Ajax的简单使用
1.简介
AJAX = Asynchronous JavaScript And XML(异步 JavaScript 及 XML)
AJAX 是 Asynchronous JavaScript And XML 的首字母缩写。
AJAX 并不是一种新的编程语言,而仅仅是一种新的技术,它可以创建更好、更快且交互性更强的 web 应用程序。
AJAX 使用 JavaScript 在 web 浏览器与 web 服务器之间来发送和接收数据。
通过在幕后与 web 服务器交换数据,而不是每当用户作出改变时重载整个 web 页面,AJAX 技术可以使网页更迅速地响应。
2.使用方法
接下来做一个用Ajax实现页面单机按钮显示用户是否存在的实例.
2.1 创建 XMLHttpRequest 对象
XMLHttpRequest对象是Ajax技术的关键,其作用是用于在后台与服务器交换数据.该对象的创建方式如下:
1 function ajaxFunction(){2 var xmlReq;3 try{4 xmlReq = new XMLHttpRequest();5 }catch(e){6 xmlReq = new new ActiveXObject("MSXML2.XMLHTTP.3.0");7 }8 return xmlReq;9 }
2.2 与服务器交换数据
通过XMLHttpRequest对象和服务器交换信息的过程分为5步:
1.获取XMLHttpRequest对象.
2.onreadystatechange 事件:时刻返回相应状态.
3.打开与服务器连接.
4.发送信息给服务器.
5.得到服务器的信息.
具体步骤可查看W3School教程:http://www.w3school.com.cn/ajax/ajax_xmlhttprequest_send.asp
1 window.onload = function(){ 2 document.getElementById("ajax").onclick = function(){ 3 var xmlReq = ajaxFunction(); 4 //onreadystatechange 事件,当返回状态为4时表示成功 5 xmlReq.onreadystatechange = function(){ 6 if(xmlReq.readyState == 4){ 7 if(xmlReq.status == 200 || xmlReq.status == 304){ 8 //得到服务器发送的数据 9 var info = xmlReq.responseText;10 //页面显示11 document.getElementById("usernameView").innerHTML = info;12 }13 }14 };15 //打开与一个Servlet的交互16 xmlReq.open("post", "../servlet/AjaxServlet?timeStamp="+new Date().getTime(),true);17 //设置请求头,这样xmlReq.send()方法发送的数据,服务器才能接受到18 xmlReq.setRequestHeader("content-type", "application/x-www-form-urlencoded");19 20 var username = document.getElementById("username").value;21 //项服务器发送数据22 xmlReq.send("username="+username);23 24 };25 };
2.3 Servlet处理请求
Servlet用于对传过来的数据进行处理,一般都是查询数据库进行比对,这里只是个Demo,所以没用数据库.
1 package cn.itcast.web.servlet; 2 3 import java.io.IOException; 4 5 import javax.servlet.ServletException; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 public class AjaxServlet extends HttpServlet {11 12 public void doGet(HttpServletRequest request, HttpServletResponse response)13 throws ServletException, IOException {14 request.setCharacterEncoding("utf-8");15 response.setCharacterEncoding("utf-8");16 response.setContentType("text/html;charset=utf-8");17 //得到请求值18 String username = request.getParameter("username");19 if("sa".equals(username)){20 response.getWriter().println("用户名已经存在");21 }else{22 response.getWriter().println("用户名可用");23 }24 25 }26 27 public void doPost(HttpServletRequest request, HttpServletResponse response)28 throws ServletException, IOException {29 doGet(request, response);30 }31 }
3.Ajax优缺点
1.使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息。
2.Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行.
3.对应用Ajax最主要的批评就是,它可能破坏浏览器的后退功能.
详细信息可查看维基百科:http://zh.wikipedia.org/zh/AJAX