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
|
var monNameSpace = {}; // l'objet global dans lequel on stocke toutes les classes du projet, histoire de ne rien laisser trainer dans window.
(function () { // permet de simuler un scope local
monNameSpace.ObjAjaxEx = function() { // on se rattache à l'objet global pour être accessible de partout
// ici le code du CONSTRUCTEUR
};
// ici les méthodes et variables PUBLIQUES, accessibles depuis l'instance d'un objet maClasse
monNameSpace.ObjAjaxEx.prototype = {
// methodes publiques
run: function() {
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest()
xhr.onreadystatechange = recieveRequest
xhr.open(this.methode, this.url, true)
xhr.send(this.dataToSend)
} else if(window.ActiveXObject){
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP")
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP")
}
if(xhr) {
xhr.onreadystatechange = recieveRequest
xhr.open(this.methode, this.url, true)
xhr.send(this.dataToSend)
}
} else {
alert("Votre Navigateur Internet ne supporte pas XMLHttpRequest")
}
this.startTime = new Date().getTime()
},
// variables publiques
methode: "GET",
url: null,
dataToSend: null,
callBackFuncRecieveRequest: null,
startTime: null;
};
// c'est comme ça qu'on déclare des variables ou des fonctions STATIQUES
//monNameSpace.ObjAjaxEx.methodeStatique = function() {};
// variables ou fonctions PRIVEES, accessibles depuis uniquement cette classe
var xhr = null,
self = monNameSpace.ObjAjaxEx, // raccourci pratique à utiliser dans la classe
recieveRequest = function() {
if(xhr){
if(xhr.readyState == 4){
if(xhr.status == 200) {
eval(xhr.responseText)
this.callBackFuncRecieveRequest(xhr)
}
}
}
},
})(); // fermeture du scope de la classe et autoexécution
// depuis tout le reste du projet, on peut accéder à cela :
var oInstance = monNameSpace.ObjAjaxEx();
// propriété d'une instance
oInstance.callBackFuncRecieveRequest = function(xhr){alert('requete reçue : ' + xhr);};
// méthode d'une instance
oInstance.run();
// méthode statique
//monNameSpace.ObjAjaxEx.methodeStatique();
// aucun moyen d'accéder à varLocale, on a donc bien une variable privée
//console.log(varLocale); // undefined |
Partager