1. L'oggetto XMLHttpRequest
Ereditarietà in JavaScript
Non è obbiettivo di questo tutorial trattare con approfondimento l'ereditarietà, che vedremo in comunque in poche righe in modo da rendervi capaci di seguire il tutorial senza problemi.
In JavaScript non esiste un vero e proprio supporto per l'ereditarietà, per poter sfruttare quindi questa opzione
ci serviremo dell'oggetto prototype.
Ci basta sapere che tutti i metodi e gli attributi che assegneremo a prototype, saranno disponibili
anche agli altri attributi e ai metodi della classe istanziati attraverso il costruttore.
Per creare quindi una classe Figlio che eredita da un'ipotetica classe Padre, è sufficiente utilizzare questa metodologia:
function Padre() {}
Padre.prototype.funzione_padre = function()
{
alert("ciao");
}
function Figlio()
{
this.funzione_padre();
}
Figlio.prototype = new Padre();
Figlio.prototype.constructor = Figlio;
Se ora creiamo un'istanza della classe Figlio, questa farà partire l'alert mandando in video la stringa "ciao".
Il costruttore di AjaxModule
Il costruttore della classe AjaxModule non contiene istruzioni.
Lo dichiariamo semplicemente per permettere a JavaScript di creare le istanze.
Di seguito il codice del costruttore. E' sufficiente creare una funzione qualunque e utilizzare poi l'operatore new per creare un'istanza della classe.
function AjaxModule() {}
L'oggetto XMLHttpRequest
|
Il primo vero metodo che andiamo a vedere è createXMLHttpRequest. Ora vediamo il codice del suddetto metodo: |
AjaxModule.prototype.createXMLHttpRequest = function()
{
if (typeof XMLHttpRequest != "undefined")
{ return new XMLHttpRequest(); }
else if (window.ActiveXObject)
{
var versioni_IE = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", "Microsoft.XMLHttp"];
for (var i in versioni_IE)
{
try
{
var xmlobj = new ActiveXObject(versioni_IE[i]);
return xmlobj;
} catch (e) {}
}
}
throw new Error("Impossibile inizializzare l'oggetto XMLHttp.");
}
Nella prima IF controlliamo che il tipo di dato XMLHttpRequest esista, ed è il caso di Firefox, Opera, Chrome, Safari e tutti gli altri.
|
Nella ELSE corrispondente invece ho racchiuso il codice per Internet Explorer.
Nell'array versioni_IE ho riportato le versioni ActiveX in ordine cronologico
a partire dalla più recente.
|
- Linguaggi:
- Tags:
