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
| jmeter_param_tests.Ajax = {
jspFolder : '/ParamTestJMeter-portlet/jsp',
getTests : function(url, callback) {
var xhr = this.getXhr();
if (xhr === null) {
alert("Your browser doesn't support XMLHttpRequest!");
return;
}
var urlToSend = this.jspFolder+url;
// fonction appelée lors d'un changement d'état de la requête
xhr.onreadystatechange = function() {
jmeter_param_tests.Ajax.stateChanged(xhr, callback);
};
// les paramètres sont envoyés en GET : inutile de passer en POST étant donné
// que ces valeurs seront de toute façon affichées à l'utilisateur.
xhr.open("GET", urlToSend, true);
xhr.send(null);
},
stateChanged : function(xhr, callback) {
// On vérifie que le requête s'est bien effectuée avant de continuer
if (xhr.readyState === 4 &&
xhr.status === 200) {
// évaluation du message JSON (eval())
callback(eval("(" + xhr.responseText + ")"));
}
},
// récupération de l'objet XmlHttpRequest (ajax) permettant d'échanger des informations
getXhr : function() {
var xhr;
try {
// Firefox, Opera 8.0+, Safari
xhr = new XMLHttpRequest();
} catch (e) {
// Internet Explorer
try {
xhr = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
}
return xhr;
}
};
Function.prototype.prepare = function() {
// si on n'a aucun parametre,on renvoie la fonction... c'est this
if(arguments.length==0) return this;
// on recupere la fonction
var _function = this;
// on fait une copie des paramètres
// on doit passer par Array.prototype.slice car arguments n'est pas un vrai Array
var args = Array.prototype.slice.call(arguments, 0)
return function() {
var params = args.concat(Array.prototype.slice.call(arguments, 0));
return _function.apply(this, params);
};
}; |
Partager