-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathajax.js
110 lines (92 loc) · 2.91 KB
/
ajax.js
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/**
* Super-Easy DimensioneX Ajax Library
*
* v. 1.4
*
* http://www.dimensionex.net/
*
*/
var loadingimg = "https://www.dimensionex.net/loading/loading1.gif"; //Prova anche loading2.gif loading3.gif ...
/**
* Funzione che istanzia un oggetto XMLHttpRequest usando un meccanismo cross browser.
*
* @return restituisce un'istanza di XMLHttpRequest oppure il valore false in caso
* di errori.
*/
function getXMLHttpRequestInstance() {
var xmlhttp;
// Prova il metodo Microsoft usando la versione più recente:
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
// Se non è stato possibile istanziare l'oggetto forse siamo
// su Mozilla/FireFox o su un altro browser compatibile:
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
// Restituisce infine l'oggetto:
return xmlhttp;
}
/**
* Funzione che sostituisce il contenuto HTML di un nodo della pagina.
*
* @param nodeId ID del nodo
* @param html codice HTML da sostituire a quello del nodo
*/
function updateContent(nodeId, html) {
var node = document.getElementById(nodeId);
if(null == node) {
//alert("[ERROR] page does not have any DIV with ID " + nodeId);
return;
}
node.innerHTML = html;
node.style.visibility = "visible";
}
/**
* Richiede al web server un contenuto in maniera asincrona.
* @param nodeId ID dell'elemento della pagina che conterrà il contenuto
* @param url URL del contenuto (deve essere sullo stesso server per motivi di sicurezza)
* @param url Opzionale, URL dell'immagine/animazione "loading"
*/
function ajax(nodeId, url, loadimg) {
loadimg = (typeof loadimg == "undefined")?loadingimg:loadimg;
var xmlhttp = getXMLHttpRequestInstance();
if(!xmlhttp) {
alert("Il browser non supporta l'oggetto XMLHttpRequest");
return false;
}
if (loadimg!=null){
updateContent(nodeId,"");
updateContent(nodeId,"<img alt='...' src='"+loadimg+"' />");
}
if (url.indexOf('?')>=0) {
url = url+'&tid='+Math.random();
} else {
url = url+'?tid='+Math.random();
}
//alert(url);
xmlhttp.open("GET", url,true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
if (xmlhttp.status==200) {
updateContent(nodeId, xmlhttp.responseText);
//alert (xmlhttp.responseText);
} else if (xmlhttp.status==404) {
alert("[ERROR] un-existing URL: "+url);
} else {
alert("[ERROR] un-handled error (" + xmlhttp.status + ")");
}
}
}
xmlhttp.send(null);
}