关于jquery:一个用于多个函数名的ajax

One ajax for multiple function names

我有ShowExpired()SessionDestroy()奔跑的jQuery函数的同一。 只读的差分:I have if语句中的showexpired()。 </P >

我们如何能收缩它吗? </P >

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
function ShowExpired() {
    if (isextend == false) {
        $.ajax({
            type:"POST",
            cache: false,
            url:"../../html/frmLogout.aspx/Sessionlogout",
            data:"{userid:" + userid +"}",
            contentType: 'application/json; charset=utf-8',
            dataType:"json",
            async: false,
            success: function (data, e, jqxhr) {
                if (data.d.result) {
                    window.location.href = '../HTML/frmLogin.aspx';
                }
            },
            error: function (data, e, jqxhr) { alert("logout ERROR=" + data.responseText); }
        });
    }

}


function SessionDestroy() {

        $.ajax({
            type:"POST",
            cache: false,
            url:"../../html/frmLogout.aspx/Sessionlogout",
            data:"{userid:" + userid +"}",
            contentType: 'application/json; charset=utf-8',
            dataType:"json",
            async: false,
            success: function (data, e, jqxhr) {
                if (data.d.result) {
                    window.location.href = '../HTML/frmLogin.aspx';
                }
            },
            error: function (data, e, jqxhr) { alert("logout ERROR=" + data.responseText); }
        });

}


我必须在diffchecker中运行它来确保。:d https://www.diffchecker.com/jcknyfg4

在这种情况下,您的第一个函数可以收缩为:

1
2
3
4
5
function ShowExpired() {
    if (isextend == false) {
        SessionDestroy();
    }
}

在您的示例中,这很容易。一般情况下,有很多选项可以使Ajax调用更具可读性,并减少代码中的空间。谷歌IT!

一些指针:

网址:https://github.com/yaymukund/jquery-ajax-wrap

https://lostechies.com/derickbailey/2012/05/04/wrapping-ajax-in-a-thin-command-framework-for-主干应用/

包装jquery的$.ajax()方法以定义全局错误处理

当然,编写自己的包装也是一种选择。它的复杂性并不高。