• ajax和jquery


    ajax的定义:

    AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
    AJAX = 异步 JavaScriptXML标准通用标记语言的子集)。
    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="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="js/jquery-1.7.2.js"></script>
    <script src="js/jquery-ui-1.8.20.custom.min.js"></script>
    <link href="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;
            200px;
        }
        #firstTable{
            position: relative;
        }
        #tableTwo{
            display:none;
            position: absolute;
            left:500px;
            top:100px;
            background:white;
        }
        #div{
            background-color:#E8E1CF;
            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="#" style="margin-left:600px" id="add">新增借书卡</a>
                <a href="#" style="margin-left:50px" id="del">删除借书卡</a>
                <a href="#" 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="男" name="sex"/>男<input type="radio" value="女" name="sex"/>女</td>
                </tr>
                <tr>
                    <td>办卡日期:</td>
                    <td><input name="date" value="${date }"/>(yyyy-mm-dd)</td>
                </tr>
                <tr>
                    <td>押金:</td>
                    <td><select name="deposit">
                            <option value="100">100</option>
                            <option value="200">200</option>
                            <option value="300">300</option>
                            <option value="400">400</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td colspan=2><input type="button" value="确认" id="confirm"/><input type="hidden" name="hide"/> <input type="button" value="取消" 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='"+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=param,//获取的参数
    dataType:"text",//服务器返回的数据类型,可选XML,Json,script,html,text等
    success:function(msg){
    //这里是ajax提交成功后,action或jsp返回的数据处理函数。msg是返回的数据,数据类型在dataType参数里定义!
    },error:function(){
    ajax提交失败的处理函数!
    }})
     
  • 相关阅读:
    INSERT INTO ON DUPLICATE KEY UPDATE
    page to frame
    指定人提交
    在结构体嵌入接口
    排序 /src/sort/zfuncversion.go:136
    Modification should be made to copies of the returned MD.
    setTimeout 定时器的编号 实际延时比设定值更久的原因:最小延迟时间
    IOPS(Input/Output Operations Per Second)是一个用于计算机存储设备(如硬盘(HDD)、固态硬盘(SSD)或存储区域网络(SAN))性能测试的量测方式,可以视为是每秒的读写次数。和其他性能测试一样,存储设备制造商提出的IOPS不保证就是实际应用下的性能。
    Working Around Memory Leaks in Your Django Application
    celery 内存泄露
  • 原文地址:https://www.cnblogs.com/zczc1996/p/5848275.html
Copyright © 2020-2023  润新知