Свима омиљени: концепт видео времена! Повратни позиви су важан концепт у ЈаваСцрипт-у. То су функције које се позивају када се радња доврши. Затим позајмите структуру и време нашем коду.
Узмимо за пример анимацију коју смо користили у прошлом видеу. За покретање анимација треба времена. Шта ако желите да се нешто друго деси баш када се та анимација заврши? Да ли морате да урадите а setTimeout
исте дужине као и анимација? Јок. јКуери нам даје функције повратног позива које се користе управо у ту сврху.
Они су обично додатни параметар који преносимо на методу. У случају анимације, као последњи параметар преносимо функцију. То је функција повратног позива и биће позвана када се анимација заврши.
$("#element").animate(( // stuff to animate ), function() ( // callback function ));
То можда изгледа мало забавно, али у суштини радимо само:
.animate(a, b)
Где a
је објекат својстава и вредности и b
функција је повратног позива.
Али из последњег видео снимка знамо да анимација такође може узети временски параметар који одређује колико ће времена трајати анимација. Где то иде? То је опциони параметар, баш као и функција повратног позива. Ако бисмо желели да га користимо, ставили бисмо га тачно у средину, дакле у суштини:
.animate(propertiesObject, duration, callback);
А ту је и још један опционални параметар, низ који можемо проследити да одредимо вредност олакшавања.
.animate(propertiesObject, duration, easing, callback);
јКуери је случајно кул и паметан у вези са тим опционим параметрима. Ако изоставите средње две и само проследите повратни позив, оно може рећи да преносите функцију, а не број или низ, па зна да мислите на функцију повратног позива. Не морате да предате лажне вредности или нешто слично. То је само добар АПИ дизајн!
Када погледате јКуери документацију, они је приказују овако:
.анимате (својства (, трајање) (, ублажавање) (, комплетно))
Затим одмах након објашњења очекиваних типова.
Али у сваком случају, назад на повратне позиве. Можете се прилично угнездити. Замислите да у функцију повратног позива ставите још једну анимацију, а та анимација има свој повратни позив. То је сасвим разумно, јер бисте можда желели да направите анимацију у више корака. Само треба бити организован.
Погледајте оловку 450ц5810бе27а9а8946цб8012цбд1213 аутора Цхрис Цоииер (@цхрисцоииер) на ЦодеПен
Овде само користимо анимацију као пример. Можда је још чешћа употреба функција повратног позива Ајак. Ајак је када прегледач позове други ресурс без освежавања странице. То може потрајати потпуно непознато. Зависи од пропусног опсега и кашњења, величине датотеке и услова грешке и свих врста ствари. Вероватно не можете ништа да урадите са тим захтевом Ајака док не добијете нешто назад или на неки други начин добијете додатне информације. Функције повратног позива су савршене за то, а у то ћемо ући касније.