相信大家都知道ajax,小弟刚刚自学,请赐教。
AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML)。 AJAX 不是一种新的编程语言,而是一种使用现有标准的新方法。通过 AJAX,您的 JavaScript 可使用 JavaScript 的XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据。在传统的web中,假如您希望从服务器上的文件或数据库中得到任何的信息,或者向服务器发送信息的话,就必须利用一个 HTML 表单向服务器 GET 或 POST 数据。而用户则需要单击“提交”按钮来发送/获取信息,等待服务器的响应,然后一张新的页面会加载结果。通过利用 AJAX,您的 网页会通过 JavaScript 的 XMLHttpRequest 对象,直接与服务器来通信。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*,java.text.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
Date date=new Date();
SimpleDateFormat smp=new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa");
String time=( smp.format(date));
response.write(time);
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
基本上就可以了。
要想把请求发送到服务器,我们就需要使用 open() 方法和 send() 方法。
open() 方法需要三个参数。第一个参数定义发送请求所使用的方法(GET 还是 POST)。第二个参数规定服务器端脚本的 URL。第三个方法规定应当对请求进行异步地处理。
send() 方法可将请求送往服务器。
xmlHttp.open("GET","time.asp",true)
;
xmlHttp.send(null)
;
在服务器的代码:
通过使用 HTTP 请求,web 页可向服务器进行请求,并得到来自服务器的响应,而不加载页面。用户可以停留在同一个页面,他或她不会注意到脚本在后台请求过页面,或向服务器发送过数据。
我们要创建XMLHttpRequest ,针对不同的浏览器使用不同的对象。
IE 浏览器使用 ActiveXObject,而其他的浏览器使用名为 XMLHttpRequest 的 JavaScript 内建对象。需针对不同的浏览器来创建此对象,我们要使用一条 "try and catch" 语句。
var xmlHttp
;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
onreadystatechange 属性存有处理服务器响应的函数
readyState 属性存有服务器响应的状态信息
状态 | 描述 |
---|---|
0 | 请求未初始化(在调用 open() 之前) |
1 | 请求已提出(调用 send() 之前) |
2 | 请求已发送(这里通常可以从响应得到内容头部) |
3 | 请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应) |
4 | 请求已完成(可以访问服务器响应并使用它) |
当readyState的值发生变化时,会自动调用onreadystatechange制定的方法。
代码如下:
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText;//获得服务器的值并赋值给表单中的time文本框
}
}