• JS如何封装一些列方法为一个对象的操作,然后集中管理这些操作,方便修改和调用


    var Api = {
        ajax:{
            // 添加项目 旧!
            add_project : function(pro_name, html, css, js,callback) {
                $.post("/action/project/add", {
                    "v_code":User.v_code,
                    "pro_name" : pro_name,
                    "html" : html,
                    "css" : css,
                    "js" : js
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 添加代码 新!
            add_code : function(code_name, html, css, js,callback) {
                $.post("/action/code/add", {
                    "v_code":User.v_code,
                    "code_name" : code_name,
                    "html" : html,
                    "css" : css,
                    "js" : js
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 保存当前代码 旧!
            update : function(id, html, css, js,sign,callback,force) {
                $.post("/action/project/update", {
                    "v_code":User.v_code,
                    "id" : id,
                    "css" : css,
                    "js" : js,
                    "html" : html,
                    "sign":sign,
                    "force":force
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 保存当前代码 新!
            update_code : function(id, html, css, js,sign,callback,force) {
                $.post("/action/code/update", {
                    "v_code":User.v_code,
                    "id" : id,
                    "css" : css,
                    "js" : js,
                    "html" : html,
                    "sign":sign,
                    "force":force
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 存为新版本
            new_version : function(id, html, css, js,callback) {
                $.post("/action/project/new_version", {
                    "v_code":User.v_code,
                    "id" : id,
                    "css" : css,
                    "js" : js,
                    "html" : html
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // fork代码 旧!
            fork : function(pro_id, ver, pro_name,callback) {
                $.post("/action/project/fork", {
                    "v_code":User.v_code,
                    "pro_id" : pro_id,
                    "ver" : ver,
                    "pro_name" : pro_name
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // fork代码 新!
            fork_code : function(id, code_name,callback) {
                $.post("/action/code/fork", {
                    "v_code":User.v_code,
                    "id" : id,
                    "code_name" : code_name
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 删除指定版本的代码
            delete_version : function(captcha,pro_id, ver,sign,callback,force) {
                $.post("/action/project/delete_version", {
                    "captcha_":captcha,
                    "v_code":User.v_code,
                    "pro_id" : pro_id,
                    "ver" : ver,
                    "sign":sign,
                    "force":force
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
    
            /**
             * 删除代码,新!
             * 
             */
            delete_code:function(captcha,id,callback){
                $.post("/action/code/delete", {
                    "captcha_":captcha,
                    "v_code":User.v_code,
                    "id" : id
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
    
            // 删除项目
            delete_project : function(captcha,pro_id,callback) {
                $.post("/action/project/delete_project", {
                    "captcha_":captcha,
                    "v_code":User.v_code,
                    "id" : pro_id
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 添加评论
            add_comment : function(code_id, content,callback) {
                $.post("/action/project/add_comment", {
                    "v_code":User.v_code,
                    "id" : code_id,
                    "content" : content
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 删除评论
            delete_comment : function(comment_id,callback) {
                $.post("/action/project/delete_comment", {
                    "v_code":User.v_code,
                    "id" : comment_id
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 投票,顶踩等
            vote : function (code_id, type,callback) {
                $.post("/action/project/vote", {
                    "v_code":User.v_code,
                    "id" : code_id,
                    "type" : type
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
    
            login : function (name,callback) {
                $.post("/action/ajax/login", {
                    "username" : name
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 登出
            logout : function (callback) {
                $.post("/action/ajax/logout",'uid='+User.user, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 通过id获取代码
            getCode : function(id,callback) {
                $.post("/action/api/getCode", {
                    "id" : id
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 项目重命名
            project_rename : function(id,name,callback){
                $.post("/action/project/rename", {
                    "v_code":User.v_code,
                    "pro_id" : id,
                    "name":name
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 代码重命名 旧!
            code_rename : function(id,name,callback){
                $.post("/action/project/rename_code", {
                    "v_code":User.v_code,
                    "code_id" : id,
                    "name":name
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 代码重命名 新!
            code_rename : function(id,name,callback){
                $.post("/action/code/rename", {
                    "v_code":User.v_code,
                    "id" : id,
                    "name":name
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 用户设置项,主题等
            setting : function(name,value,callback){
                $.post("/action/api/setting", {
                    "v_code":User.v_code,
                    "name" : name,
                    "value":value
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 发布代码 旧!
             */
            publish : function(id,description,callback){
                $.post("/action/project/post", {
                    "v_code":User.v_code,
                    "id" : id,
                    "description":description
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 发布代码 新!
             */
            publish_code : function(id,description,callback){
                $.post("/action/code/post", {
                    "v_code":User.v_code,
                    "id" : id,
                    "description":description
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 更新代码信息 旧!
            update_info : function(id,name,description,callback){
                $.post("/action/project/update_info", {
                    "v_code":User.v_code,
                    "id" : id,
                    "name" : name,
                    "description":description
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 更新代码信息 新!
            update_code_info : function(id,name,description,callback){
                $.post("/action/code/update_info", {
                    "v_code":User.v_code,
                    "id" : id,
                    "name" : name,
                    "description":description
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            
            // 收藏
            favor : function(code_id,callback){
                $.post("/action/project/favor", {
                    "v_code":User.v_code,
                    "id" : code_id
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            // 取消收藏
            un_favor : function(favor_id,callback){
                $.post("/action/project/un_favor", {
                    "v_code":User.v_code,
                    "id" : favor_id
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 添加url文件
             */
            add_url_file : function(url,callback){
                $.post("/action/file/add_url_file",{
                    "v_code":User.v_code,
                    "url":url
                },function(msg){
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 删除文件
             */
            delete_file : function(captcha,id,callback){
                $.post("/action/file/delete_file", {
                    "captcha_":captcha,
                    "v_code":User.v_code,
                    "id" : id
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 添加建议
             */
            add_advice : function(captcha,ident,email,content,callback){
                $.post("/action/advice/add_advice",{
                    "captcha_":captcha,
                    "ident":ident,
                    "email":email,
                    "content":content
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 发送消息
             */
            send_msg:function(receiver,content,callback){
                $.post("/action/msg/sendMsg",{
                    "receiver":receiver,
                    "content":content
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 阅读消息
             */
            read_msg:function(id,callback){
                var params = '?';
                $.each(id,function(i,cur){
                    params+="id="+cur;
                    if(i<id.length-1){
                        params+="&";
                    }
                });
                if(params=='?'){
                    params+="id="+id;
                }
                $.post("/action/msg/readMsg"+params,params, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 阅读所有的未读消息
             */
            read_all_msg:function(type,callback){
                $.post("/action/msg/readAllMsg",{
                    "v_code":User.v_code,
                    "type":type,
                }, function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 将插件加到市场
             */
            add_to_market:function(id,callback){
                $.post("/action/plugin/add_to_market",{
                    "id":id
                },function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 将代码更新到插件市场,id为code的id.
             */
            update_to_market:function(id,callback){
                $.post("/action/plugin/update_to_market",{
                    "id":id
                },function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 从插件市场移出
             */
            delete_from_market:function(id,callback){
                $.post("/action/plugin/delete_from_market",{
                    "id":id
                },function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 将代码设置为插件
             */
            set_plugin:function(id,sys,callback){
                $.post("/action/plugin/set_code_plugin",{
                    "id":id,
                    "sys":sys
                },function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 审核插件
             */
            check_plugin:function(id,callback){
                $.post("/action/plugin/check",{
                    "id":id
                },function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 取消审核插件
             */
            uncheck_plugin:function(id,callback){
                $.post("/action/plugin/uncheck",{
                    "id":id
                },function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 加到广场
             */
            add_to_square:function(id,callback){
                $.post("/action/square/add",{
                    "id":id
                },function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 更新到广场
             */
            update_to_square:function(id,callback){
                $.post("/action/square/update",{
                    "id":id
                },function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 添加分类
             */
            add_catalog:function(name,callback){
                $.post("/action/catalog/add",{
                    "name":name
                },function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 分类重命名
             */
            rename_catalog:function(name,id,callback){
                $.post("/action/catalog/rename",{
                    "name":name,
                    "id":id
                },function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 删除分类,该分类必须没有代码
             */
            delete_catalog:function(id,callback){
                $.post("/action/catalog/delete",{
                    "id":id
                },function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 移动到分类
             */
            move_to_catalog:function(code_id,catalog_id,callback){
                $.post("/action/catalog/move_to",{
                    "id":code_id,
                    "catalog":catalog_id
                },function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            /**
             * 设置代码类型
             */
            set_code_type:function(id,code_type,type,callback){
                $.post("/action/code/set_code_type",{
                    "id":id,
                    "code":code_type,
                    "type":type
                },function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            },
            less_compile:function(less,callback){
                $.post("/action/ajax/less_compile",less,function(msg) {
                    if(typeof callback != 'undefined')return callback(msg);
                });
            }
        }
    };
    View Code

    这是一个例子,那么从例子中,我们可以学习到,如何封装一系列方法到一个对象中。

    下面是如何调用已经封装好的方法,居然是如此的简练:

    $(function() {
        if (typeof isIE6 != "undefined") {
            $(".logo").attr({
                "class" : "ie6_logo"
            })
        }
        $(window).bind("resize", function() {
            resize();
        })
        $(".comment").click(function() {
            $(".fork").attr("class", "nofocus fork");
            $(this).attr("class", "focus comment");
            $(".detail_comment").show();
            $(".detail_fork").hide();
        });
        $(".fork").click(function() {
            $(".comment").attr("class", "nofocus comment");
            $(this).attr("class", "focus fork");
            $(".detail_comment").hide();
            $(".detail_fork").show();
        });
        $("#logout").click(function() {
            logout();
        });
        $(".prelogin").click(function() {
            new $.Zebra_Dialog($("#user_login").html(), {
                'title' : '登录方式',
                'modal' : true,
                'width' : 460,
                'type' : false,
                'buttons' : [ {
                    caption : '取消'
                } ]
            }).show();
            /*
             * var url; //转向网页的地址; var name; //网页名称,可为空; var iWidth; //弹出窗口的宽度; var
             * iHeight; //弹出窗口的高度; var iTop =
             * (window.screen.availHeight-30-iHeight)/2; //获得窗口的垂直位置; var iLeft =
             * (window.screen.availWidth-10-iWidth)/2; //获得窗口的水平位置;
             * window.open(url,name,'height='+iHeight+',,innerHeight='+iHeight+',width='+iWidth+',innerWidth='+iWidth+',top='+iTop+',left='+iLeft+',toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no');
             */
        });
        resize();
        $("button.detail_comment_button").click(function() {
            addComment();
        });
        $("textarea[name='content']").keydown(function(event) {
            if (event.ctrlKey && event.keyCode == 13) {
                addComment();
            }
        });
        $("#view_scale").change(function() {
            var sc = $(this).val();
            var w = '100%';
            var h = '100%';
            var t = 'scale(1)';
            if (sc == '0.5') {
                w = '200%';
                h = '200%';
                t = 'scale(0.5)';
            } else if (sc == '2') {
                t = 'scale(2)';
            }
            $("#code_detail").css({
                'width' : w,
                'height' : h,
                '-webkit-transform' : t,
                'transform' : t
            });
        });
        $("#show_gist").mouseenter(function(){
            show_gist();
        });
    });
    
    var resize = function() {
        var width = $(window).width();
        var cw = $(".comment").width();
        var w = width;
        if (w < 1000)
            w = 1000;
        w = w - 300 - 60;
        $(".detail_mainContent_left,.detail_comment_input textarea")
                .css("width", w);
        $(".detail_wrapper").css("width", width < 1000 ? 960 : width - 40);
        $(".fork").css("width", w - cw - 43);
    }
    function logout() {
        Api.ajax.logout(function(msg) {
            location.href = RURL;
        });
    }
    function login(op) {
        var url = "http://runjs.cn/action/openid/before_login?op=" + op; // 转向网页的地址;
        var name = "用" + op + "登录RunJS"; // 网页名称,可为空;
        var iWidth = 800; // 弹出窗口的宽度;
        var iHeight = 600; // 弹出窗口的高度;
        var iTop = (window.screen.availHeight - 30 - iHeight) / 2; // 获得窗口的垂直位置;
        var iLeft = (window.screen.availWidth - 10 - iWidth) / 2; // 获得窗口的水平位置;
        window
                .open(
                        url,
                        name,
                        'height='
                                + iHeight
                                + ',,innerHeight='
                                + iHeight
                                + ',width='
                                + iWidth
                                + ',innerWidth='
                                + iWidth
                                + ',top='
                                + iTop
                                + ',left='
                                + iLeft
                                + ',toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no');
    }
    function addComment() {
        var ctn = $("textarea[name='content']");
        var content = ctn.val();
        if (content.length == 0 || content == "觉得怎么样?赶紧说几句"){
            alert("请输入评论内容");
            return;
        }
        Api.ajax
                .add_comment(
                        Code.id,
                        content,
                        function(msg) {
                            var msg = eval("(" + msg + ")");
                            if (msg.error) {
                                alert(msg.msg);
                                return false;
                            }
                            var comment = $('<li id="comment_'
                                    + msg.id
                                    + '">'
                                    + '<img src="'
                                    + User.portrait
                                    + '" width="48" height="48">'
                                    + '<p><a href="'
                                    + (typeof User.space == "undefined" ? 'javascript:void(0);'
                                            : User.space)
                                    + '">'
                                    + User.name
                                    + '</a><span class="time">1分钟前</span><span class="delete"><a href="javascript:removeComment('
                                    + msg.id + ');">删除</a></span></p>' + '<p>'
                                    + msg.content + '</p>' + '</li>');
                            comment.hide();
                            $(".detail_comment_list").prepend(comment);
                            comment.show(500);
                            $(".zeroComment").remove();
                            ctn.val("");
                        });
    }
    function removeComment(id) {
        if (confirm("确认删除此条评论?")) {
            Api.ajax
                    .delete_comment(
                            id,
                            function(msg) {
                                var msg = eval("(" + msg + ")");
                                if (msg.error) {
                                    alert(msg.msg);
                                    return false;
                                }
                                $("#comment_" + id)
                                        .hide(
                                                500,
                                                function() {
                                                    $(this).remove();
                                                    if ($(".detail_comment_list li").length == 0) {
                                                        $(".detail_comment_list")
                                                                .prepend(
                                                                        '<li class="zeroComment" style="text-align:center;">还没有人评论哦,赶紧抢个沙发吧~~</li>');
                                                    }
                                                });
                            });
        }
    }
    
    function viewAll(t) {
        $(".detail_otherProject li").show();
        $("#view_all_li").remove();
    }
    function add_to_square(id) {
        Api.ajax.add_to_square(id, function(msg) {
            var msg = eval("(" + msg + ")");
            if (msg.error) {
                alert(msg.msg);
                return false;
            } else {
                alert("添加成功");
                location.reload();
            }
        });
    }
    function update_to_square(id) {
        Api.ajax.update_to_square(id, function(msg) {
            var msg = eval("(" + msg + ")");
            if (msg.error) {
                alert(msg.msg);
                return false;
            } else {
                alert("更新成功");
                location.reload();
            }
        });
    }
    
    function delete_from_square(id) {
        $.post("/action/square/delete", {
            "id" : id
        }, function(msg) {
            var msg = eval("(" + msg + ")");
            if (msg.error) {
                alert(msg.msg);
                return false;
            } else {
                alert("去除成功");
                location.reload();
            }
        });
    }
    function love(id) {
        Api.ajax.vote(id, 1, function(m) {
            m = eval("(" + m + ")");
            if (m.error) {
                alert(m.msg);
            } else {
                var ar = $(".detail_interactArea_like a");
                ar.css({
                    'background-image' : 'url(../img/liked.gif)'
                });
                ar.attr("href", "javascript:void(0);");
                love_count++;
                ar.html("已喜欢<span>(" + love_count + ")</span>");
            }
        });
    }
    function show_gist(){
        $("#gist_span").show();
        $("#gist_input").focus().select();
    }
  • 相关阅读:
    测试用例编写(功能测试框架)
    OKR与KPI管理的区别与联系
    手机测试常见的BUG解析
    软件测试之BUG分析定位概述(QA如何分析定位BUG)【转自 https://blog.csdn.net/kaka1121/article/details/51538979】
    KPI、KPA、OKR三者的区别
    swagger api 文档框架
    Jmeter + Ant + Jenkins 接口/性能测试,持续集成环境搭建
    重建词汇精神家园
    记忆的本质
    attention机制七搞八搞
  • 原文地址:https://www.cnblogs.com/wangqiideal/p/6264965.html
Copyright © 2020-2023  润新知