2010-09-01 31 views
6

Javascript'teki geriçağırım işlevinin anlamı nedir?geri arama işlevi anlamı

+13

beklemeye alın. google dan bana danışabilirim ... – Lukman

+3

Lukman, lütfen bağlantıyı sağlayın, OP hiçbir zaman [Google] 'ı (http://www.google.com/search?q=callback+function) hiç duymamış olabilir. Bazı sonuçlar: [Geri Vikipedi hakkında] (http://en.wikipedia.org/wiki/Callback_%28computer_science%29) [SO hakkında JS geri arama] (http: // stackoverflow.com/sorular/483073/alma-a-iyi-anlama-of-geri arama fonksiyonları-in-javascript). – Lekensteyn

+5

Bu kadar yardımcı olmayın iki ... – Cipi

cevap

6

Sadece bir şeyden sonra geri çağrılması gereken bir işlev için bir addır.

Genellikle XMLHttpRequest ile kullanılır:

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

sadece düz fonksiyonudur, bu durumda:

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

JavaScript en başka işleve geçirilebilir fonksiyon nesnedir "geri" (bir işlev işaretçisi veya bir temsilci işlevi gibi) ve işlev tamamlandığında veya bunu yapmak gerektiğinde çağrılır.

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

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

Böyle arayacak:

Örneğin, bunu arayacak bir işlev geçebildiği için bir ana işlevi ...

Ana fonksiyon şöyle olabilir olabilir

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

Veya:

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

mainFunc(thisIsCallback); 

Bu yoğun javascript kütüphaneleri kullanılır. Örneğin jQuery'nin animasyonu() işlevi, animasyon bittiğinde çağrılacak böyle bir işlevi iletebilir.

Geri arama işlevi başka bir işleve geçilmesi, çağrılmasının garanti edilmez. Bir geri arama çağrısı (calBack()) yürütmek tamamen bu işlevin uygulanmasına bağlıdır.

İsmi bile "geri arama" kendini açıklayıcı ... =)

3

sadece bir işlev olmasının yanı sıra, bir geri çağırma işlevi asenkron uygulama tasarımı için bir imkan olmasıdır.

Bir işlevi çağırmak ve geri dönüş değeri (değerlerini) beklemek yerine, beklerken, iş parçacığı veya tüm PC ya da UI'yi tek bir iş parçacığı üzerinde kilitleme, bir işlev çağırdığınızda, bir işlev çağrısı olarak, daha sonra geri döner. bitirdikten sonra kodunuzdan çıkabilirsiniz (çağrı yapan OS'ye geri dönme, boşta kalma durumu, çalışma döngüsü, ne olursa olsun ...). Daha sonra, OS veya senkronize olmayan fonksiyon kodunuzu geri çağırır. Geri çağırmak istediğiniz kod genellikle "geri arama işlevi" adı verilen bir şeyle kapsüllenir. Başka kullanımlar da var, ancak bu, OOP UI çerçevelerinde ortak olanı.

En son iOS 4.x ile, geri arama için isimsiz "bloklar" da kullanabilirsiniz. Ancak bloklara sahip olmayan diller (veya başka bir ad altında anon kapanmaları), işlev geri çağrıları için işlevleri kullanır.

+0

Bazı eski işletim sistemi, geri aramalar için sadece genel talimat adreslerini kullandı (bu, mutlaka "işlevlerin" adresi olmak zorunda değildi). – hotpaw2

-1

Sadece geri düğmesinin altına ifadesi onClick olayı kullanabilirsiniz:

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

geri yakın zamanda ziyaret etmişti önceki sayfaya götürür için çalışacaktır.

İlgili konular