NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 2 - První objektová aplikace v JavaScriptu

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Patrik Pastor:11.4.2019 20:06

Mam mozna blby dotaz, ale jak je mysleno, ze v pripade deklarace skriptu v Hlavicce v html souboru bych musel reagovat na nacitani stranky?. Delal jsem predtim kurz na jQuery, a tam jsme vzdy deklarovali skript (jeden SRC na dokumentaci googlu s jQuery a druhy vlastni - lokalni skript) vzdy do hlaviccky, muj dotaz tedy je, co je ten zasadni rozdil nacitani skriptu v hlavicce a body. Diky za odpoved

 
Odpovědět
11.4.2019 20:06
Avatar
Odpovídá na Patrik Pastor
Michal Šmahel:11.4.2019 22:56

Ahoj, než začnu s podrobnějším vysvětlením, uvedu to na pravou míru. Jedná se buď o přístup vložení do hlavičky (<head>) (obvykle na konec) nebo na konec těla (<body>) stránky. Také prozradím, že se doporučuje spíše druhá varianta, tedy zvolit konec tagu <body>.

Oba přístupy v konečném důsledku udělají totéž - načtou daný skript ze souboru, popř. elementu <script>. Liší se však tím, kdy je skript načten.

Umístění do hlavičky
Link na soubor se skriptem nebo přímo element <script> s obsaženým zdrojovým kódem lze umístit do hlavičky (kamkoliv, doporučuje se však spíše nějak ke konci kvůli oddělení od zbytku věcí, které patří výhradně do hlavičky - meta tagy, linky pro napojení CSS souborů a další potřebné věci). Poté však dochází k obecně známému "problému" (ona je to však pouze vlastnost) - když se načte skript (a s tím všechny funkce, chceš-li metody), ještě není načten DOM (Document Object Model). To znamená, že skript ještě nemá k dispozici ani strukturu HTML kódu a logicky k ní proto nemůžeš přistupovat. Toto se dá vyřešit tím, že ve skriptu vyčkáš na načtení DOM (nebo celého obsahu, podle toho, co potřebuješ) - typická implementace je přes akce onload nebo DOMContentLoaded na okně (window).

Zjednodušený příklad implementace:

// Potřebuji počkat, až se vše načte, potom se může pokračovat v načítání skriptu
window.onload = () => {
    // Kód
}

// Stačí mi načtené DOM, obrázky, CSS a další externí zdroje nepotřebuji
document.addEventListener("DOMContentLoaded", () => {
    // Kód
});

Umístění na konec těla
V tomto případě link nebo přímo zdrojový kód v <script> vložíš před </body> (na konec těla). Poté odpadá nevýhoda z minulého řešení. HTML kód se načítá postupně, a když dojde na načtení tvých zdrojových kódů, již je zbytek stránky načten. Nemusíš tedy řešit implementaci akcí, které ti hlídají, zda je již vše načteno - prostě počítáš s tím, že je. Kromě toho je Javascript také oddělen od zbytku provázání na externí soubory (CSS, favicon, různé obrázky pro sdílení, ...) a má své vyhrazené místo jen pro sebe. V tomto případě se ti nestane, že Javascript "hledáš" - vždy je na konci HTML kódu.

Javascript není můj primární jazyk, takže prosím o omluvení stručnosti a menší obsáhlosti mého komentáře. Vím, že jsou tu členové, kteří s Javascriptem pracují o mnoho více a jistě mě rádi doplní.

Odpovědět
11.4.2019 22:56
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Fero M
Člen
Avatar
Fero M:12.6.2019 23:34

Ahoj, nejde mi vůbec spustit kod OOP, ani ze souboru "ahoj_oop.zip".
Kde může být chyba? Nevypisují se žádné chybové hlášky, jen když kód spustim tak se mi objeví jen bílá stránka....

 
Odpovědět
12.6.2019 23:34
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Fero M
David Hartinger:8.5.2020 12:18

Protože to musíš nejdřív rozbalit.

Odpovědět
8.5.2020 12:18
New kid back on the block with a R.I.P
Avatar
Odpovídá na Fero M
Miroslav Lalík:28.5.2020 15:17

Pro ty kterým tohle nefunguje musíte nejdřív v html souboru načíst script kde se definuje třída a potom až script pro obsluhu.

Odpovědět
28.5.2020 15:17
Všechno jde když znáš ty správný lidi
Avatar
Milan Turyna
Tvůrce
Avatar
Odpovídá na Fero M
Milan Turyna:28.5.2020 22:05

Bylo by dobre si zjistit co vlastne OOP je, abys ho mohl provozovat naimportuj tridy a potom ve svem skriptu vytvor instanci. Napriklad

var Player = new Player()
Odpovědět
28.5.2020 22:05
Řeš pouze to, co dokážeš ovlivnit.
Avatar
Jan Jedlička:4.6.2020 17:07

Omlouvam se, ze se tak blbe ptam. Pri ukladani souboru musim pouzit pro nazev prvni velke pismeno? Chapu u vytvareni objektu (new Neco).

 
Odpovědět
4.6.2020 17:07
Avatar
Milan Turyna
Tvůrce
Avatar
Odpovídá na Jan Jedlička
Milan Turyna:5.6.2020 6:06

Nemusíš, ale můžeš, já to dělám přijde mi to přehlednější. To stejné i u třídy, tam si taky myslím můžeš zvolit jestli začneš velkým nebo malým písmenem.

Odpovědět
5.6.2020 6:06
Řeš pouze to, co dokážeš ovlivnit.
Avatar
Odpovídá na Milan Turyna
Jan Jedlička:5.6.2020 10:13

takze je to hlavne pro prehlednost?

 
Odpovědět
5.6.2020 10:13
Avatar
Milan Turyna
Tvůrce
Avatar
Milan Turyna:5.6.2020 10:28

Ano v Javascriptu to je pouze pro přehlednost.

Odpovědět
5.6.2020 10:28
Řeš pouze to, co dokážeš ovlivnit.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 12.