2010-09-01 26 views
6

Qual è il significato della funzione di callback in javascript.funzione di richiamata significato

+13

attesa. lasciami consultare google ... – Lukman

+3

Lukman, ti preghiamo di fornire il link, OP potrebbe non avere mai sentito parlare di [Google] (http://www.google.com/search?q=callback+function). Alcuni risultati: [Wikipedia su Callback] (http://en.wikipedia.org/wiki/Callback_%28computer_science%29) [SO su JS callback] (http: // stackoverflow.com/domande/483.073/getting-a-meglio-comprensione-di-callback-funzioni-in-JavaScript). – Lekensteyn

+5

Non essere così poco collaborativo voi due ... – Cipi

risposta

6

È solo un nome per una funzione che deve essere richiamata dopo qualcosa.

E 'spesso usato con XMLHttpRequest:

var x = new XMLHttpRequest(); 
x.onreadystatechange = function(){ 
    if(x.readyState == 4){ 
     callbackfunction(x.responseText); 
    } 
} 
x.open('get', 'http://example.com/', true); 
x.send(null); 

callbackfunction è solo una funzione semplice, in questo caso:

function callbackfunction(text){ 
    alert("I received: " + text); 
} 
13

JavaScript di "callback" è oggetto di funzione che può essere passato a qualche altra funzione (come un puntatore a funzione o una funzione delegato), e quindi chiamato quando la funzione viene completata o quando è necessario. Ad esempio, si può avere una funzione principale a cui è possibile passare una funzione che chiamerà ...

Funzione principale può apparire come segue:

function mainFunc(callBack) 
{ 
    alert("After you click ok, I'll call your callBack"); 

    //Now lets call the CallBack function 
    callBack(); 
} 

potrete chiamare in questo modo:

mainFunc(function(){alert("LALALALALALA ITS CALLBACK!");} 

Oppure:

function thisIsCallback() 
{ 
    alert("LALALALALALA ITS CALLBACK!"); 
} 

mainFunc(thisIsCallback); 

Questo è ampiamente usato in librerie JavaScript. Ad esempio, la funzione animation() di jQuery può essere passata a una funzione come questa per essere chiamata quando termina l'animazione.

Il passaggio della funzione di richiamata ad un'altra funzione non garantisce che venga richiamato. L'esecuzione di una callback call (calBack()) dipende totalmente dall'implementazione di tale funzione.

Anche il nome "richiamata" è auto-esplicativo ... =)

3

Oltre ad essere solo una funzione, una funzione di richiamata è un volano per la progettazione applicazione asincrona.

Invece di chiamare una funzione e attendere i valori restituiti, potenzialmente bloccando il thread o l'intero PC o l'interfaccia utente su sistemi a thread singolo mentre si attende, con lo schema asincrono si chiama una funzione, viene restituito prima finendo, e quindi puoi uscire dal tuo codice (tornare al sistema operativo chiamante, inattivo, eseguire il ciclo, qualunque cosa ...). Successivamente, il sistema operativo o la funzione asincrona richiama il codice. Il codice che si desidera richiamare è solitamente incapsulato in qualcosa chiamato "funzione di richiamata". Ci sono altri usi, ma questo è comune nei framework UI di OOP.

Con l'ultima versione di iOS 4.x, è anche possibile utilizzare "blocchi" senza nome per la richiamata. Ma le lingue che non hanno blocchi (o anon closures sotto un altro nome) usano le funzioni per i callback delle funzioni.

+0

Alcuni vecchi OS hanno appena usato indirizzi di istruzioni globali per le richiamate (che non necessariamente doveva essere l'indirizzo di "funzioni". – hotpaw2

-1

Si può semplicemente utilizzare il sottostante dichiarazione onClick caso di pulsante indietro:

OnClick="javascript:history.go(-1)" 

lavorerà per tornare alla pagina precedente, che si era visitato di recente.

Problemi correlati