Subversion Repositories eFlore/Archives.eflore-xul

Rev

Go to most recent revision | Details | 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*/
11
function connection( qString ) {
12
    /*Create the Object*/
13
    try {
14
        var req = new XMLHttpRequest();
15
        req.overrideMimeType("text/xml");
16
    }catch (e){
17
        alert('Error creating the connection!');
18
        return;
19
    }
20
 
21
    try {
22
        //Set Permission only in case of direct connection
23
        if(connectionType == "direct") {
24
            netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
25
    }
26
 
27
    req.open("GET",qString,true);
28
    req.send(null);
29
 
30
    } catch (e) {
31
        alert('An error has occured: '+e);
32
        return;
33
    }
34
 
35
    //TimeOut
36
    var iter = timeOut;
37
    var loaded = false;
38
 
39
    var checkLoad = function () {
40
        if(loaded) {
41
            clearInterval(intervalID);
42
        } else if(iter == 0) {
43
            reqAbort();
44
            alert('Connection has timed out. Aborted after '+ timeOut + ' seconds');
45
        } else {
46
            iter--;
47
        }
48
    };
49
 
50
    var intervalID =  setInterval(checkLoad,1000);
51
 
52
    function stopConnection(e) {
53
        if(e.keyCode == 27 && req) {
54
            reqAbort();
55
        }
56
    }
57
 
58
    function reqAbort() {
59
        if(req) req.abort();
60
        clearInterval(intervalID);
61
    }
62
 
63
    req.onload = function() {
64
        switch(req.readyState) {
65
            case 1,2,3:
66
            break;
67
            case 4:
68
                loaded = true;
69
                if(req.status !=200) {
70
                    alert('The server respond with a bad status code: '+req.status);
71
                } else {
72
                    //Work around for Moz 1.3
73
					parseCallback( req.responseText );
74
                }
75
            break;
76
        };
77
    }
78
}