# 12: atgalinio ryšio funkcijos - CSS-gudrybės

Anonim

Visų mėgstamiausia: koncepcinio vaizdo laikas! Skambinimas yra svarbi „JavaScript“ sąvoka. Tai funkcijos, kurios yra iškviečiamos, kai veiksmas baigiamas vykdyti. Tada paskolink mūsų kodo struktūrą ir laiką.

Paimkime, pavyzdžiui, animaciją, kurią naudojome paskutiniame vaizdo įraše. Animacijoms atlikti reikia laiko. Ką daryti, jei norite, kad kažkas kitas įvyktų iškart, kai animacija bus baigta? Ar turite atlikti tokio setTimeoutpat ilgio kaip animacija? Ne. „jQuery“ suteikia mums skambinimo funkcijas, naudojamas tik tam tikslui.

Paprastai jie yra papildomas parametras, kurį mes perduodame metodui. Animacijos atveju mes perduodame funkciją kaip paskutinį parametrą. Tai yra atgalinio skambinimo funkcija ir bus iškviesta, kai animacija bus baigta.

$("#element").animate(( // stuff to animate ), function() ( // callback function ));

Tai atrodo šiek tiek funky, bet iš esmės mes tiesiog darome:

.animate(a, b)

Kur ayra ypatybių ir reikšmių objektas ir byra atgalinio skambinimo funkcija.

Tačiau iš paskutinio vaizdo įrašo žinome, kad animacija taip pat gali turėti laiko parametrą, nurodantį animacijos trukmę. Kur tai dingsta? Tai neprivalomas parametras, kaip ir atgalinio skambinimo funkcija. Jei norėtume jį naudoti, įdėtume jį tiesiai į vidurį, taigi iš esmės:

.animate(propertiesObject, duration, callback);

Taip pat yra dar vienas pasirenkamas parametras, eilutė, kurią galime perduoti norėdami nurodyti palengvinimo vertę.

.animate(propertiesObject, duration, easing, callback);

„jQuery“ tiesiog atrodo kietas ir protingas dėl tų neprivalomų parametrų. Jei paliksite vidurinius du ir tiesiog perduosite atgalinį skambutį, tai gali pasakyti, kad tai, ką jūs einate, yra funkcija, o ne skaičius ar eilutė, taigi jis žino, kad turite galvoje atgalinio skambinimo funkciją. Jums nereikia perduoti fiktyvių vertybių ar nieko. Tai tik geras API dizainas!

Peržiūrėję „jQuery“ dokumentaciją, jie tai rodo taip:

. gyvas (savybės (, trukmė) (, palengvinimas) (, pilnas))

Tada iškart paaiškinkite laukiamus tipus.

Bet šiaip, grįžkime prie skambučių. Galite būti gana įdėti. Įsivaizduokite, kad į atgalinio skambučio funkciją įdėsite dar vieną animaciją, ir ta animacija turi savo atgalinį skambutį. Tai visiškai pagrįsta, nes galbūt norėsite atlikti daugiapakopę animaciją. Jums tereikia likti organizuotam.

Žiūrėkite Chriso Coyierio (@chriscoyier) rašiklį 450c5810be27a9a8946cb8012cbd1213 „CodePen“

Čia kaip pavyzdį naudojame tik animaciją. Galbūt dar dažniau atgalinio ryšio funkcijos naudojamos „Ajax“. „Ajax“ yra tada, kai naršyklė kviečia kitą šaltinį, neatnaujindama puslapio. Tam gali prireikti visiškai nežinomo laiko. Tai priklauso nuo pralaidumo ir delsos bei failo dydžio, klaidų sąlygų ir visų rūšių dalykų. Tikriausiai nieko negalėsite padaryti su ta „Ajax“ užklausa, kol negausite kažko atgal ar gausite daugiau informacijos. Tam puikiai tinka atgalinio skambinimo funkcijos, kurias mes aptarsime vėliau.