一、ajax是什么
二、XMLHttpRequest的生命周期
三、ajax的一种简单实现
一、ajax是什么
AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML),AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术。
AJAX 是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。
通过 AJAX,您的 JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据。
AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。
AJAX 可使因特网应用程序更小、更快,更友好。
二、XMLHttpRequest的生命周期
XMLHttpRequest的readyState的五种状态
状态
|
名称
|
描述
|
0 |
Uninitialized
|
初始化状态。XMLHttpRequest 对象已创建或已被 abort() 方法重置。
|
1 |
Open
|
open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。
|
2 |
Sent
|
Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。
|
3 |
Receiving
| 所有响应头部都已经接收到。响应体开始接收但未完成。 |
4 |
Loaded
| HTTP 响应已经完全接收。 |
XMLHttpRequest的status的几种常用状态
三、ajax的一种简单实现
今天我们要讲述的是一个页面发出ajax请求后,先将查询到的list信息先返回到另一个jsp网页,然后再将整个jsp网页返回给请求页面的ajax应用。
下面是调用ajax实现的jsp页面
- <%@ page language="java" contentType="text/html; charset=utf-8"
- pageEncoding="utf-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <link href="css.css" rel="stylesheet" type="text/css" />
- <script type="text/javascript" src="jsManager.js"></script>
- <title>常熟农村信息化综合平台</title>
- </head>
- <body onload="init();" >
- <div class="main">
- <div class="data-box" id="linkContent">
- </div>
- <div class="tabs">
- <a href="javascript:requestContent('/getview.do?action=listmanagement&sourcetype=1&pagerow=2&pagecolumn=3¤tpage=1');" class="management" id="countryManButton">农村管理</a>
- </div>
- <div><img src="p_w_picpaths/bg01.png" /></div>
- </div>
- </div>
- </body>
- </html>
struts.xml中跳转的配置,我们可以看到返回到的是一个jsp页面
- <action path="/getview" scope="request"
- type="com.informational.action.ManageAction">
- <forward name="success" path="/page/touch/management.jsp" />
- </action>
js中调用ajax核心代码
- function requestContent(url) {
- //判断浏览器
- if (window.XMLHttpRequest) {
- http_request = new XMLHttpRequest();
- if (http_request.overrideMimeType) {
- http_request.overrideMimeType('text/xml');
- }
- } else if (window.ActiveXObject) {
- try {
- http_request = new ActiveXObject("Msxml2.XMLHTTP");
- } catch (e) {
- try {
- http_request = new ActiveXObject("Microsoft.XMLHTTP");
- } catch (e) {
- }
- }
- }
- if (!http_request) {
- alert("您的浏览器不支持当前操作,请使用 IE 5.0 以上版本!");
- return false;
- }
- http_request.open('GET', url, true);
- // 禁止IE缓存
- http_request.setRequestHeader("If-Modified-Since", "0");
- // 发送数据
- http_request.send(null);
- // 判断ajax状态,为4时表示http响应已经完全接收
- if (http_request.readyState == 4) {
- // 判断ajax状态,为200时表示信息已成功返回,可以开始处理
- if (http_request.status == 0 || http_request.status == 200) {
- // 这边的responseText返回的就是上面struts中返回的management.jsp
- document.getElementById("linkContent").innerHTML = http_request.responseText;
- }
- }
- }
这边我就不展示management.jsp的显示代码了!
转载于:https://blog.51cto.com/xuepiaoqiyue/836936