Diskuze: Asynchronní JavaScript
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
synchonni js - nedava smysl
Asynchonni prenos - funguje tak, ze uzivatel pozada o data a druha strana mu je posila. Mezitim s programem je mozne delat dalsi kod.
Synchroni - tvuj kod ceka na dostahovani souboru. Pokud druhy server je pomaly, 40 min., tak tvuj program 40min je zasekly.
Ve win funguje neco jako planovac uloh. Ty mu zadas ukol, stahuj soubor a on se pokusi kazdych treba 100ms kontaktovat druhy pc a pozadat ho o data. Tato operace trva treba 10ms, kdyz nedostane odpoved, 80ms, kdyz ano. V pripade zadnych dat muze tvuj program delat neco jineho.
U js to funguje tak, ze pro asychronni prenos potrebujes predat funkci odkaz
na navratovou funkci. Cili, co se ma udelat, az bude soubor dostahovan.
synch - A(); B(); C();
asynch - A(C); B();
A je prenosova funkce, B nejaky kod, na kterem ti nezalezi, C funkce po ukonceni
prenosu.
V prvnim pripade se ceka, az A skonci, pak se provede B a pak C.
V druhem pripade se spusti prenos A, a jestli bezi nebo ne, zacne se provadet B.
Pokud prenos skonci driv, tak treba uprostred kodu B zacne provadet soucasne kod
C.
Jestli chces neco podobneho, tak napriklad <img src="..."
onload="C();">. Defaultne je prenos prohlizece asynchronni, takze si bude
stahovat obrazek a zobrazi ti mezitim zbytek html kodu. A po skonceni stahovani
spousti C.
Kdybys tam misto obrazku dal tag script, a ten js se ne a ne nacist, tak by se
nemel zobrazit ani zadny html kod pod tagem. (ale takovou situaci resi kazdy
prohlizec trochu jinak, takze, mozna se to takto nezachova)
<script src=url></script> Kod, ktery ceka na tag script
Zobrazeno 3 zpráv z 3.