Ajax
来源:互联网 发布:棋牌游戏数据代码 编辑:程序博客网 时间:2024/06/06 06:40
AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)。
AJAX还有一个最大的特点就是,当服务器响应时,不用刷新整个浏览器页面,而是可以局部刷新。这一特点给用户的感受是在不知不觉中完成请求和响应过程。
AJAX第三例(用户名是否已被注册)
(当输入用户名后,把光标移动到其他表单项上时,浏览器会使用AJAX技术向服务器发出请求,服务器会查询名为zhangSan的用户是否存在,最终服务器返回true表示名为zhangSan的用户已经存在了,浏览器在得到结果后显示“用户名已被注册!”。
l 整个过程中页面没有刷新,只是局部刷新了;
l 在请求发出后,浏览器不用等待服务器响应结果就可以进行其他操作;)
AJAX虽然提高了用户体验,但无形中向服务器发送的请求次数增多了,导致服务器压力增大;
因为AJAX是在浏览器中使用Javascript技术完成的,所以还需要处理浏览器兼容性问题;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript"> //为了处理浏览器兼容问题,给出下面方法来创建XMLHttpRequest对象:
function createXMLHttpRequest(){
try{
return new XMLHttpRequest();
}catch(e){
try{
return new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
}
function send(){
var xmlHttp=createXMLHttpRequest();
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4 && xmlHttp.status==200){
if(xmlHttp.responseText=="true"){
document.getElementById("error").innerHTML="用户已被注册";
}else{
document.getElementById("error").innerHTML="";
}
}
}; /项目名
xmlHttp.open("POST","/AjaxRegist/web/RegistServlet?method=regist",true);//这个参数可以不给,默认值为true,表示异步请求;
但在使用AJAX发送请求时,就没有默认值了,这需要我们自己来设置请求头:
若是GET请求,需要在URL后连接参数。
注意:若没有参数,需要给出null为参数!若不给出null为参数,可能会导致FireFox浏览器不能正常发送请求!
<body>
<h1>注册</h1>
<form action="http://localhost:8080/AjaxRegist/RegistServlet?method=regist" method="post">
用户名:<input id="username" type="text" name="gzhanghao" onblur="send()"/>
<span id="error"></span><br/>
密码:<input type="password" name="gmima"/><br/>
<input type="submit" value="注册"/>
</form>
</body>
</html>
后台程序:
package web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.itcast.servlet.BaseServlet;
import service.RegistService;
/**
* Servlet implementation class RegistServlet
*/
public class RegistServlet extends BaseServlet {
private RegistService rservice;
public void regist(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
rservice=new RegistService();
String gzhanghao=request.getParameter("username");
response.getWriter().print(rservice.findZhanghao(gzhanghao));
}
}
当输入用户名后,把光标移动到其他表单项上时,浏览器会使用AJAX技术向服务器发出请求,服务器会查询名为zhangSan的用户是否存在,最终服务器返回true表示名为zhangSan的用户已经存在了,浏览器在得到结果后显示“用户名已被注册!”。
l 整个过程中页面没有刷新,只是局部刷新了;
l 在请求发出后,浏览器不用等待服务器响应结果就可以进行其他操作;
- Ajax
- Ajax
- AJAX
- AJAX
- AJAX
- AJAX
- AJAX
- ajax
- ajax
- Ajax
- ajax
- ajax
- AJAX
- Ajax
- Ajax
- Ajax
- ajax
- ajax
- 移动臂调度算法
- java:ArrayList循环遍历的俩种方法使用 ArrayList取出第i个值
- 数据库优化-1
- Java进阶(四十九)实现矩阵秩的求解-转置-行列式-逆矩阵操作
- 收录一些大师的blog, 防止我忘记
- Ajax
- 透视学理论(四)
- Swift - 本地数据的保存与加载(使用NSCoder将对象保存到.plist文件)
- 内存泄漏分析 mat 使用 activity泄漏
- 2016年终总结
- TCP/IP协议三次握手与四次握手流程解析
- XMPP学习10-连接方法
- 使用Freemark模板生成ES查询参数
- 解决64位Ubuntu无法使用adb、aapt的32位兼容问题