• jq的ajax交互封装


    jq封装的ajax,然后 在此前和此后都是很多要考虑的  ,何不 想想构思封装下。

    下面:

      基本上网页都存在各种ajax,使得网页变得更加易于操作。

    举个长长的例子吧:

      

    <input  type="button" value="↑" onclick="changeBidSign('netcreditadmin/bidSignDownA.action',${bidlists.bidId},'UP')">

    这是一个向上的按钮--js方法,

    changeBidSign(action,id,status);status存在,使得此方法同样可以运用到 Down Left  之类

    下面介绍js,整体构思:

    admin:是我写 具体复杂的操作的js方法

    ajax——common 

      ajaxfun:写上简单的ajax提交类似:

      

    /**
     * 简单的form表单提交
     */
    function simpleSub(formId, callbackFun){
    	//var DivRef = document.getElementById("Loader");
    	var options = { 
    		dataType: 'json',
    //		beforeSubmit: function(){
    //			//提交开始前使按钮不可用
    //			$("#"+buttonId).attr("disabled", "true");
    //			DivRef.style.display = "block"; 
    //		},
    		success: callbackFun //此方法封装在callbackfun.js
    	};
    	$("#"+formId).ajaxSubmit(options); 
    	return false;
    }
    

      callbackfun.js: 写在response回调函数

     进程的分析如下:
      前台ajax交互,无非是data不同,要么前面逻辑处理。 所以 分3部分
     1. data  和 逻辑处理  写在同一个js里面。
     2. ajax基本共用,
     3. 回调函数兴许,有时候 div 等局部刷新。所以这里callbackFun 一个远不够。这里归一类。
    data 和 逻辑:
      
    function batchDelete(checkboxName, delTagAction, listTagAction, rel){
        var ids=new Array();
        if($("input[name="+checkboxName+"]:checked").size()==0){
            alertMsg.warn("请至少选择一条需要删除的数据!");
            return false;
        }
        $("input[name="+checkboxName+"]:checked").each(function(i,obj){
            ids[i]=$(obj).val();
        });
        var idStr=ids.join("-");
        //alert(idStr);
        if (confirm("删除的数据将放入回收站,确定继续")) {

          dialogAjaxSimple(delTagAction,idStr);
        }else{ return false; 
      }
    }
     
    ajax基本共用:
    function dialogAjaxSimple(tagAction,idStr){ 
    $.ajax({
                url:tagAction,
                data:{
                    sendTime:(new Date()).getTime(),
                    idStr:idStr
                },
                type:"post",
                async:false,
                dataType:"json",
                success:reponse
            });
    }
    回调函数兴许,有时候 div 等局部刷新:
    //tab页面的ajax回调
    function response(data){
        if(data.success == true){
            alertMsg.correct(data.msg);
            var $box = $("#"+data.rel+"");
            $box.ajaxUrl({
                type:"POST", url:data.url, data: null, callback:function(){
                    $box.find("[layoutH]").layoutH();
                }
            });
        }else{
            alertMsg.error(data.reason);
        }
    }
    在后台,我想说的也有:
      两个文件,一个是类,一个是reponse后的页面。
    类先说吧:
      
    clientResponse = successResponse("操作成功",
                    "netcreditadmin/getbidListA.action", "bidId");

     这个是我 getset的字符串clientResponse。

      

    ···/**
         * ajax返回的json对象
         * */
        protected String failResponse(String reason) {
            String response = "{"success": false, "reason":"" + reason + ""}";
            return response;
        }
    
        protected String successResponse(String msg, String url, String rel) {
            String response = "{"success": true,"msg":"" + msg
                    + "","url":"" + url + "","rel":"" + rel + ""}";
            return response;
        }
    先看配置文件吧:
      
        <action name="bidSignDownA" class="xidian.sl.netcredit.action.admin.BasicDataA"
                method="bidSignDownA_">
                    <result name="success">/WEB-INF/ajax_response/client.jsp</result>
            </action>
    ajax_response/client.jsp:
      
    <%@ taglib prefix="s" uri="/struts-tags"%>
    <% response.setCharacterEncoding("UTF-8"); %>
    <% System.out.println(response);%>
    <s:property value="clientResponse" escape="false"/>

     到这里终于 全部过程讲了一遍。适合学过jq的人。

    这封装不单单这一种,但是我想说,这慢慢改 慢慢改都会可以的。java之路皆美也,共同开发。

    学jq,js 学java 必须带这脑子学。做这个必须让自己,问自己为什么做这个。

    加油!!!


     
  • 相关阅读:
    JAVA学习25天
    Java学习第24天
    Java学习第23天
    Java学习22天
    第3周
    Java21
    day23作业
    day23
    Typecho使用技巧
    搭建Typecho博客
  • 原文地址:https://www.cnblogs.com/Alandre/p/3364721.html
Copyright © 2020-2023  润新知