首页 > 代码库 > ajax和jquery

ajax和jquery

ajax的定义:

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。
AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。
ajax的优势:可以跨平台,可以实现无刷新技术。
 
jquery的定义:
jquery就是用javascript更加方便的查询和控制页面控件。
jquery优点:减少了代码量
 
下面我们来看一个简单的例子
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script src="http://www.mamicode.com/js/jquery-1.7.2.js"></script></head><script type="text/javascript">    $(function(){        //按钮单击时执行        $("#testAjax").click(function(){              $.ajax({url:"index.jsp",                    success:function(data){                        //alert(data);                        $("#myDiv").html(data);                    }                    } );         });    });</script>    </head>    <body>        <div id="myDiv"><h2>通过 AJAX 改变文本</h2></div>        <button id="testAjax" type="button">Ajax改变内容</button>    </body></html>

我的那个url地址是另一个jsp页面,代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@page import="java.text.SimpleDateFormat"%><%@page import="java.util.Date"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script src="http://www.mamicode.com/js/jquery-1.7.2.js"></script><script src="http://www.mamicode.com/js/jquery-ui-1.8.20.custom.min.js"></script><link href="http://www.mamicode.com/css/ui-lightness/jquery-ui-1.8.20.custom.css" rel="stylesheet"/></head><style>    tr,td{        border:1px solid;        padding:10px;        text-align:center;    }    #firstTable th{        border:1px solid;        width:200px;    }    #firstTable{        position: relative;    }    #tableTwo{        display:none;        position: absolute;        left:500px;        top:100px;        background:white;    }    #div{        background-color:#E8E1CF;        width:100%;        height:100%;        opacity: 0.6;        position: fixed;        display:none;    }</style><%        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");        String date=sdf.format(new Date());        session.setAttribute("date", date);%><body>    <div id="div"></div>    <div>        <h3 style="text-align:center">借书卡管理系统</h3>        <div><a href="http://www.mamicode.com/#" style="margin-left:600px" id="add">新增借书卡</a>            <a href="http://www.mamicode.com/#" style="margin-left:50px" id="del">删除借书卡</a>            <a href="http://www.mamicode.com/#" style="margin-left:50px" id="update">修改借书卡</a>            <input placeholder="请根据姓名或者卡号进行查询" size="30px" name="midSelect"/><button id="midSelect">模糊查询</button></div>        <table id="firstTable">                    </table>    </div>    <form action="" method="post" name="addForm">        <table id="tableTwo">            <tr>                <td colspan=2>借书卡信息登记</td>            </tr>            <tr>                <td>姓名:</td>                <td><input name="name"/></td>            </tr>            <tr>                <td>性别:</td>                <td><input type="radio" checked value="http://www.mamicode.com/男" name="sex"/>男<input type="radio" value="http://www.mamicode.com/女" name="sex"/>女</td>            </tr>            <tr>                <td>办卡日期:</td>                <td><input name="date" value="http://www.mamicode.com/${date }"/>(yyyy-mm-dd)</td>            </tr>            <tr>                <td>押金:</td>                <td><select name="deposit">                        <option value="http://www.mamicode.com/100">100</option>                        <option value="http://www.mamicode.com/200">200</option>                        <option value="http://www.mamicode.com/300">300</option>                        <option value="http://www.mamicode.com/400">400</option>                    </select>                </td>            </tr>            <tr>                <td colspan=2><input type="button" value="http://www.mamicode.com/确认" id="confirm"/><input type="hidden" name="hide"/> <input type="button" value="http://www.mamicode.com/取消" id="cancle"/></td>             </tr>        </table>    </form></body><script>    function load(param){        var msg="";        $.ajax({            url:"BookCardServlert",            type:"post",            data:param,            dataType:"json",            success:function(data){                msg+="<tr>";                msg+="<th><input type=‘checkbox‘id=‘all‘ onchange=‘selectAll()‘/>全选<input type=‘checkbox‘ id=‘opposite‘ onchange=‘notSelectAll()‘/>反选</th>";                msg+="<th>卡号</th>";                msg+="<th>姓名</th>";                msg+="<th>性别</th>";                msg+="<th>办卡日期</th>";                msg+="<th>押金</th>";                msg+="</tr>";                if(data!=null){                    for(var i=0;i<data.length;i++){                        msg+="<tr>";                        msg+="<td><input type=‘checkbox‘ name=‘id‘ value=http://www.mamicode.com/‘"+data[i].cid+"‘</td>";                        $.each(data[i],function(name,value){                            msg+="<td>"+value+"</td>";                        });                        msg+="</tr>";                    }                }else{                    msg+="<tr><td colspan=6><h3>没有你要查询的内容</h3></td></tr>";                }                $("#firstTable").html(msg);            }        });    }    load();    //模糊查询    $("#midSelect").click(function(){        var param=$("input[name=‘midSelect‘]").serialize();        alert(param);        load(param);    });    //新增.修改    function add(type){        if($(addForm.name).val()!=""){            if($(addForm.name).val().length<7){                if($(addForm.date).val()!=""){                    var text=$("input[name=‘date‘]").val();                    if(text!=""){                        var date=/^\d{4}-((0?[1-9])||1[1,2])-(([1,2]\d)||([0]?[1-9])||(3[0,1]))$/;                        if(date.test(text)){                            var param=$(addForm).serialize();                            //alert(param);                            $.ajax({                                url:"addBookCard?type="+type,                                type:"post",                                data:param,                                success:function(data){                                    alert(data);                                    load();                                    $("#tableTwo").hide();                                    $("#div").css("display","none");                                    $(addForm)[0].reset();                                },error:function(data){                                    alert("加载不到数据");                                    alert("错误编码:"+data.status+",错误信息"+data.statusText);                                },                                timeout:1000                            });                        }else{                            alert("日期格式错误");                        }                    }                }else{                    alert("日期不能为空");                }            }else{                alert("用户名长度最多为7");            }        }else{            alert("用户名不能为空");        }    }    //修改    $("#update").click(function(){        //将被选中的多选框序列化        var param=$(":checkbox:checked").serialize();        //当参数不为空的时候        if(param!=""){            if($(":checkbox:checked").length>1){                alert("一次只能修改一个");            }            //将提交按钮变成修改            $("#confirm").val("修改");            $("#tableTwo").show();            $("#div").css("display","block");            //获取所有的td            var $td=$(":checkbox:checked").not("#all").not("#opposite").eq(0).parent().siblings();            //alert($td[0].nodeName);            $(addForm.name).val($td.eq(1).text());            $(addForm.sex).val([$td.eq(2).text()]);            $(addForm.date).val($td.eq(3).text());            $(addForm.deposit).val([$td.eq(4).text()]);            $(addForm.hide).val($td.eq(0).text());        }else{            alert("请选择你要选择的数据");        }    });    //看是添加还是删除    $("#confirm").click(function(){        if($("#confirm").val()=="确认"){            add("insert");            $(addForm)[0].reset();        }else if($("#confirm").val()=="修改"){            add("update");        }    });    //删除    $("#del").click(function(){        //获取被选中的个数        var length=$("input[name=‘id‘]:checked").size();        if(length<=0){            alert("您还没有勾选数据");        }else{            var check=$("input[name=‘id‘]:checked");            var param=check.serialize();            $.ajax({                url:"del",                type:"post",                data:param,                success:function(data){                    alert(data);                    load();                }            });        }    });    //全选    //var both=false;     function selectAll(){         $("#opposite").prop("checked",false);         var flag=$("#all").prop("checked");         $(":checkbox").not("#opposite").not("#all").prop("checked",flag);     }    //反选    function notSelectAll(){        //获取所有的复选框        $("#all").prop("checked",false);        var $check=$(":checkbox").not("#all").not("#opposite");        //alert($check.prop("checked"));        for(var i=0;i<$check.length;i++){            if($check.eq(i).prop("checked")){                $check.eq(i).prop("checked",false);            }else{                $check.eq(i).prop("checked",true);            }        }    }     $("#add").click(function(){        $("#tableTwo").show();        $("#confirm").val("确认");        $(addForm)[0].reset();        $("#div").css("display","block");    });    $("#cancle").click(function(){        $("#tableTwo").hide();        $("#div").css("display","none");    });</script></html>

通过例子我们可以更好的理解ajax的作用

下面我们来总结下

JQUERY:
$.ajax({
type:‘post‘,//可选get
url:‘action.jsp页面‘,//路径
data:data=http://www.mamicode.com/param,//获取的参数
dataType:"text",//服务器返回的数据类型,可选XML,Json,script,html,text等
success:function(msg){
//这里是ajax提交成功后,action或jsp返回的数据处理函数。msg是返回的数据,数据类型在dataType参数里定义!
},error:function(){
ajax提交失败的处理函数!
}})
 

ajax和jquery