Ja­va­Script è uno dei linguaggi dominanti per la creazione di siti. Molti sfruttano la pos­si­bi­li­tà che offre il lin­guag­gio di scripting per creare siti in­te­rat­ti­vi capaci di reagire agli input. Anche questo lin­guag­gio si serve di variabili, oggetti e funzioni con accesso reciproco in grado di rap­pre­sen­ta­re sempre lo stesso risultato su diversi browser. La co­sid­det­ta funzione di callback (in italiano: funzione di richiamo) si cela dietro la maggior parte dei tasti e delle vi­sua­liz­za­zio­ni po­sti­ci­pa­te di contenuti.

Funzioni di questo tipo non sono però un’esclusiva di Ja­va­Script: anche altri noti linguaggi di pro­gram­ma­zio­ne come C, Java, PHP o Python uti­liz­za­no callback per conferire parametri utente precisi in modo semplice.

Acquista e registra il tuo dominio con il provider n°1 in Europa
  • Domain Connect gratuito per una con­fi­gu­ra­zio­ne facile del DNS
  • Cer­ti­fi­ca­to SSL Wildcard gratuito
  • Pro­te­zio­ne privacy inclusa

Cos’è una funzione di callback?

Le funzioni lavorano sempre con parametri su cui basarsi. Si parla di funzione di callback quando una funzione è trasmessa a un’altra funzione come parametro. Si ricorre spesso a queste funzioni per librerie e framework come le ap­pli­ca­zio­ni per Ja­va­Script jQuery, Angular oppure node.js che rendono le funzioni esten­di­bi­li e per­met­to­no di vi­sua­liz­zar­le con input o in cir­co­stan­ze precise.

Come funziona una callback?

Una funzione di callback ha sempre un effetto definito legato a cir­co­stan­ze definite. Per questo le funzioni di callback si aprono soltanto quando accade un’azione già definita in modo chiaro. Un ottimo esempio di funzione di richiamo è rap­pre­sen­ta­to dagli Even­tHand­ler (in italiano: gestore di eventi), che si applicano ad esempio per elementi HTML come i tasti. Un event o evento può essere rap­pre­sen­ta­to da un clic del mouse che permette di attivare la funzione di callback che si occupa a sua volta del col­le­ga­men­to con un'altra pagina. Un altro scenario possibile è l’in­se­ri­men­to di un valore in un modulo da compilare.

Vi rias­su­mia­mo di seguito la dif­fe­ren­za prin­ci­pa­le tra una funzione tra­di­zio­na­le e una funzione di callback: mentre una funzione normale è vi­sua­liz­za­ta di­ret­ta­men­te, la funzione di richiamo è solo definita e viene vi­sua­liz­za­ta ed eseguita soltanto quando si verifica un evento preciso. Come già accennato, le funzioni di callback si uti­liz­za­no in diversi linguaggi di pro­gram­ma­zio­ne che si dif­fe­ren­zia­no per la sintassi e la con­fi­gu­ra­zio­ne dei metodi, ma man­ten­go­no lo stesso principio della callback.

Funzione di callback in Ja­va­Script

Le funzioni di callback sono molto diffuse nella pro­gram­ma­zio­ne con Ja­va­Script, che si tratti di una funzione attivata premendo un tasto o di un contenuto po­sti­ci­pa­to collegato a una funzione set­Ti­meout().

Un tasto tra­di­zio­na­le rap­pre­sen­ta un esempio semplice per il­lu­stra­re una funzione di richiamo in Ja­va­Script:

document.getElementById("Tasto1").addEventListener("click", function() {
console.log("Tasto premuto");
}, false);

In questo esempio la callback avviene tramite un Even­tLi­ster­ner, attivato dopo un evento preciso, che in questo caso cor­ri­spon­de a un clic sul tasto con­tras­se­gna­to dall’ID “Tasto1”. Un clic sul tasto soddisfa le con­di­zio­ni per la funzione di callback, che viene perciò eseguita ; nella console compare quindi il messaggio “Tasto premuto”. Per garantire la com­pa­ti­bi­li­tà con le versioni più vecchie dei browser, abbiamo uti­liz­za­to nel­l'e­sem­pio anche il parametro “false”.

Funzioni di callback in PHP

In PHP le funzioni di callback si attivano in modo simile a Ja­va­Script. Tuttavia, le funzioni di richiamo nel lin­guag­gio di scripting possono essere anche metodi di un oggetto che di­spon­go­no di metodi di classe statici.

Un esempio di funzione classica di callback in PHP:

function my_callback_function() {
	echo 'Ciao mondo!';
}

Attivando questa funzione verrà mostrata la stringa “Ciao mondo!”. Per attivare la callback come metodo, si procede come indicato di seguito:

class MyClass {
	static function myCallbackMethod() {
		echo 'Ciao Mondo!';
	}
}

In PHP le callback sono un mezzo diffuso per per­met­te­re la co­mu­ni­ca­zio­ne tra le funzioni e si uti­liz­za­no spesso per im­ple­men­ta­re plugin o moduli in modo pulito ga­ran­ten­do le loro funzioni.

Funzioni di callback in Python

Per la sua sintassi semplice, Python è uno dei linguaggi di pro­gram­ma­zio­ne più amati. Si tratta di un lin­guag­gio versatile uti­liz­za­to sia per i software sia per gli hardware e rap­pre­sen­ta il punto di partenza ideale per chi vuole imparare a pro­gram­ma­re. Python è par­ti­co­lar­men­te richiesto nei settori della scienza dei dati e dell’ap­pren­di­men­to au­to­ma­ti­co e presenta numerosi vantaggi rispetto agli altri linguaggi.

In Python le callback si uti­liz­za­no so­prat­tut­to per assegnare agli elementi UI diversi eventi. Nel­l'e­sem­pio seguente si de­fi­ni­sco­no due funzioni, la callback “get_square” e la vi­sua­liz­za­zio­ne “caller”. Infine sarà attivata la callback:

>>> def get_square(val):
		return val ** 2
>>> def caller(func, val):
		return func(val)
>>> caller(get_square, 5)

La sintassi nella funzione di callback ha una con­fi­gu­ra­zio­ne molto semplice, in modo simile a Ja­va­Script e PHP.

Funzioni di callback in Java

In Java l'ese­cu­zio­ne di una funzione di callback è piuttosto insolita. Per replicare il principio, si utilizza ad esempio l’in­fra­strut­tu­ra Re­flec­tion, dove i metodi e le funzioni vengono mappati e rie­la­bo­ra­ti in oggetti. Per questo motivo Re­flec­tion è più una funzione di libreria che di callback.

Anche l'ap­proc­cio SAX di Java funziona in modo simile alla callback: un file XML si legge at­tra­ver­so un ge­ne­ra­to­re di parser XML e in base al risultato ottenuto si vi­sua­liz­za un metodo preciso di callback, tra cui i metodi start­Do­cu­ment() e star­tE­le­ment().

Funzioni di callback in C

Nei linguaggi di pro­gram­ma­zio­ne C, la funzione di callback si integra in modo simile a Ja­va­Script. Il lin­guag­gio è uti­liz­za­to spesso per la pro­gram­ma­zio­ne di sistema e di ap­pli­ca­zio­ne e rap­pre­sen­ta una com­po­nen­te fissa per la pro­gram­ma­zio­ne di kernel di sistemi o di sistemi operativi. Molti linguaggi di pro­gram­ma­zio­ne, come ad esempio Ja­va­Script, PHP, C++, Java o anche C#, sono for­te­men­te in­fluen­za­ti dalle ca­rat­te­ri­sti­che di C; per questo i diversi linguaggi pre­sen­ta­no molti elementi comuni nella sintassi e nei metodi.

Un esempio di funzione di callback in C:

void A()
{
	printf("Io sono una funzione A\n");
}
// La Callback Function
void B(void (*ptr)())
{
	(*ptr) (); // Qui si visualizza la callback di A
}
int main()
{
	void (*ptr)() = &A;
	// Si visualizza la funzione B
	// La funzione A viene trasmessa come argomento
	B(ptr);
	return 0;
}

Il risultato di questo codice è il seguente:"Io sono una funzione A.” Come nel caso di Ja­va­Script, anche qui la funzione di callback viene vi­sua­liz­za­ta soltanto quando si verifica un evento preciso. C utilizza questo tipo di funzione per creare nuove librerie per la pro­gram­ma­zio­ne e per inviare segnali dal kern necessari per gli eventi asincroni.

Managed Hosting per WordPress
Genera il tuo sito web con l'IA: al resto pensiamo noi
  • 0 co­no­scen­ze pre­li­mi­na­ri richieste grazie a intuitive funzioni IA
  • Tanti temi e plugin per per­so­na­liz­za­re come vuoi
  • Ag­gior­na­men­ti semplici e gestione minima
Vai al menu prin­ci­pa­le