Subversion Repositories eFlore/Archives.eflore-xul

Rev

Rev 13 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
13 jpm 1
/*
2
Fonction de recuperation d'infos sur le server
3
 
4
PENSER A METTRE :
5
connectionType = "direct";
6
timeOut = 120;
7
DANS LA FONCTION APPELANT connection !!!
8
*/
9
 
10
/* Use XMLHttpRequest to make a connection*/
23 jpm 11
function connection( qString )
12
{
13 jpm 13
    /*Create the Object*/
14
    try {
15
        var req = new XMLHttpRequest();
16
        req.overrideMimeType("text/xml");
23 jpm 17
    }
18
    catch (e){
19
        alert('Erreur lors de la création de la connection!');
13 jpm 20
        return;
21
    }
22
 
23
    try {
24
        //Set Permission only in case of direct connection
25
        if(connectionType == "direct") {
26
            netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
23 jpm 27
        }
28
 
29
        req.open("GET",qString,true);
30
        req.send(null);
31
 
13 jpm 32
    }
23 jpm 33
    catch (e) {
13 jpm 34
        alert('An error has occured: '+e);
35
        return;
36
    }
23 jpm 37
 
13 jpm 38
    //TimeOut
39
    var iter = timeOut;
40
    var loaded = false;
23 jpm 41
 
13 jpm 42
    var checkLoad = function () {
43
        if(loaded) {
44
            clearInterval(intervalID);
45
        } else if(iter == 0) {
46
            reqAbort();
47
            alert('Connection has timed out. Aborted after '+ timeOut + ' seconds');
48
        } else {
49
            iter--;
50
        }
51
    };
23 jpm 52
 
13 jpm 53
    var intervalID =  setInterval(checkLoad,1000);
23 jpm 54
 
55
    function stopConnection(e)
56
    {
57
        if (e.keyCode == 27 && req) {
13 jpm 58
            reqAbort();
59
        }
60
    }
61
 
23 jpm 62
    function reqAbort()
63
    {
13 jpm 64
        if(req) req.abort();
65
        clearInterval(intervalID);
66
    }
67
 
23 jpm 68
    req.onload = function()
69
    {
13 jpm 70
        switch(req.readyState) {
71
            case 1,2,3:
72
            break;
73
            case 4:
74
                loaded = true;
75
                if(req.status !=200) {
76
                    alert('The server respond with a bad status code: '+req.status);
77
                } else {
78
                    //Work around for Moz 1.3
23 jpm 79
                    parseCallback( req.responseText );
13 jpm 80
                }
81
            break;
82
        };
83
    }
84
}