7.1 异步请求和同步请求

ajax简单的说就是
1.使用JavaScript发起一个http请求
2.请求返回之前,不影响页面使用,不需要等待返回,这就是异步的意义
3.根据返回的结果,修改页面的内容、样式,或者跳转页面
这和普通的发起提交请求,然后更新页面的区别就在于第2点:网页可以继续浏览、点击,不需要刷新页面。ajax是Web2.0的基础,强调网页极强的交互性和访问的流畅性。 接下来,我们将使用jQuery(一个JavaScript框架),发起一个ajax请求。 jQuery的版本不断迭代,我们这里使用的是1.10.2版本。 首先,需要下载js文件,右键点击这里另存为 下面是一个登陆函数,使用ajax方式登录,随便填入账号、密码后点击登录,就会调用JavaScript函数send,将账号、密码发送到目标页面test.jsp。
function send(){
    //取得id为name的元素的值,这里会取到账号
    var usr=$("#name").val();
    //取得id为name的元素的值,这里会取到密码
    var pass=$("#pass").val();
    $.ajax({
        //type是http的发送数据方式,get或者post;url是指定要发送的目标页面,data是要发送的数据,这里发送了两个数据,id:usr的意思是名字为id,值是变量usr的值
        type:"GET",
        url:"test.jsp",
        data:{
            id:usr,
            psw:pass
        },
        beforeSend:function(xmlHttp){
            xmlHttp.setRequestHeader("If-Modified-Since",
            "0");
            xmlHttp.setRequestHeader("Cache-Control",
            "no-cache");
        },
        //发送http请求成功后,msg就是test.jsp的应答内容
        success:function(info){
            //将info的内容,显示在id为msg的元素内
            $("#msg").html(info);
        }
    }
接下来我们看看test.jsp怎么接收数据和应答
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<% String name=request.getParameter( "id" ); String pass=request.getParameter( "psw" ); out.println(name + "登陆成功" );%>
从请求中取得参数名为id和pass的两个值,这两个值是第一个页面用ajax发送过来的: data : { id : usr, pass : pass } test.jsp页面并不会显示,它最终发送的“xxx登陆成功”,会发回给请求提交的页面,也就是第一个页面。这个时候,第一个页面的这段代码就会执行: success :function(info){ //将msg的内容,显示在id为msg的元素内 $("#msg").html(info);} 大括号里面其实一个函数,它把发送回来的内容,也就是info,显示在页面中id为msg的元素里。