Diskuze: Objektové html
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 14 zpráv z 14.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.
To, co popisuješ, moc nevypadá na OOP.
V podstatě jo, ale uložit si generování HMTL tagů do funkce, to opravdu není objektově orientované programování.
Nic takového neznám, ale pokud chceš, tak v PHP si můžeš kompletně naprogramovat generátor HTML kódu, který Ti pak ušetří spoustu času a kód bude přehlednější.
HTML není programovací jazyk, proto se nebavíme o žádném OOP ani ničem podobném. HTML je hypertextový značkovací jazyk - pomocí značek udává, jak bude výsledný dokument vypadat.
HTML se ovšem dnes téměř vždy generuje něčím automaticky - tam už se bavíme o programování. V PHP, Javě, .Net nebo něčem takovém máme na serveru naprogramovaný program/skript, který generuje výsledné HTML a odesílá ho klientovi/prohlížeči. Tam lze samozřejmě OOP (stejně jako většinu jiných paradigmat) použít lze - dokonce se již dnes téměř výhradně používá OOP (např. MVC).
Druhý způsob je generování HTML na straně klienta, např. (nebo spíš jedině) Javascriptem. Potom se HTML generuje až na straně klienta v prohlížeči. Zde se také používá OOP (např.MVC).
Když mám v jednom html kus kódu, mohu na něj v druhém odkázat tak, aby se kód neotevřel v prohlížeči, ale použil jako část toho druhého ?
Zkus nějak lépe popsat, čeho přesně chceš docílit.
Dle situace se dá použít iframe, AJAX, PHP, prostě podle toho co to je, kde to je, v čem to je, co to dělá...
(Pokud máš namysli přímo "includovat" HTML pomocí HTML, tak ne, nejde to, viz můj předchozí příspěvek.)
HTML1 soubor
<!Doctype HTML>
<html>
<head>
</head>
<body>
<iframe url:("html2")>
</body>
</html>
HTML2 soubor
<nav>
<ul>
<li>
<li>
<li>
</ul>
<nav>
Html1 je moje stránka. Html2 je stažené menu (dočetl jsem se něco o tagu <iframe>, jak píšeš ty). Prostě se dvojka použije v jedničce.
No a právě k takovýmto věcem úplně v počátku vzniklo PHP. Iframe se na to v žádném případě nehodí.
Pokud bys to chtěl udělat v PHP, tak to bude vypadat nějak takto:
html1.php
<!Doctype HTML>
<html>
<head>
</head>
<body>
<?php
include("html2.html");
?>
</body>
</html>
Doporučuji projít seriál zde na webu, v kategorii PHP.
Zdravím všechny!
Vím, že diskuse je již uzavřena s uznaným řešením a rozhodně s
uvedenými názory souhlasím, ale přece jen mi to nedá nedoplnit nějakou tu
informaci, která zde, čište dle mého názoru, chybí.
Otázka hrubě přeložena zněla: Jak poskládat HTML strukturu stránky tak, aby to bylo přehlednější a jestli k tomuto účelu existuje nějaké "objektové HTML"? Všechny odpovědi zde se pak zabývají tím, jak se vlastně dnes HTML stránka jako taková vygeneruje, ať už na straně klienta nebo serveru, a jak již jsem psal, vše je naprosto korektní. Pouze to úplně neodpovídá na původní myšlenku otázky.
Odpověď na tuto otázku je ano, existuje něco jako "objektové HTML". Dokonce je to i poměrně aktuální téma, kterým se zabývá organizace W3C (World Wide Web Consortium), jež má na starosti schvalování standardů pro tvorbu webových stránek. Odpovědí na tuto otázku jsou tedy tzv. webové komponenty (Web Components).
O co jde. Jedná se o ještě ne v plném rozsahu schválený standard, který ale již dnes většina populárních prohlížečů ve svých novějších verzích podporuje. Myšlenkami je pak velice podobný právě OOP. Jde o to, rozdělit web do jednotlivých menších celků, které mají samostatnou "skrytou" HTML strukturu, vlastní CSS a vlastní funkčnost, implementovanou z pravidla pomocí JavaScriptu. Těmto celkům se pak říká komponenty, přičemž jejich vzhled a funkčnost je izolována od zbytku stránky, logicky se mohou skládat a dokonce od sebe mohou i do jisté míry dědit. Další výhodou, stejně jako u OOP, je také znovupoužitelnost, ať už vlastních nebo cizích, již existujících, komponent. Zkrátka splňují většinu principů OOP i když trochu po svém.
Více informací jsi jistě zvládnete dohledat sami, já zde jen ještě
uvedu dva takové příklady související s knihovnami, které Vám dovolí
standard webových komponent snadno použít třeba i ve Vašich projektech, aby
jste se případně měli od čeho odpíchnout.
Prvním příkladem, který rozhodně stojí za zmínku, je Polymer Projekt, který před nedávnem přešel do verze 1.0. Tento projekt je sponzorovaný Googlem, který právě jeho prostřednictvím začal distribuovat svůj Material Design pro webovou platformu. Určitě tento design poznáte z většiny nových aplikací od Googlu. Dobré je asi ještě zmínit, že tato knihovna, která je mimochodem k dispozici ve verzi jak pro JavaScript, tak pro Dart, umí mimo jiné "simulovat" tento standart i ve starších prohlížečích, včetně např. starší verze Internet Exploreru.
Druhou takovou knihovnou, opět sponzorovanou Googlem, je Angular 2, a to opět jak ve své verzi pro JavaScript, tak i pro Dart. Ve své druhé verzi totiž Angular nahradil předešlé "directivy" právě za webové komponenty. Tzn. že kód pro danou část stránky se nyní již nedosazuje do jednotné struktury v podobě vygenerovaného HTML, nýbrž se zde dosadí pouze odpovídající webová komponenta. A opět i zde můžete pracovat s již předpřipravenými komponentami ve stylu Material Designu.
Na otázku co zvolit, odpovím tak, že pokud chcete svůj web generovat na straně serveru a pouze na některé části použít webové komponenty, asi sáhnete spíše po Polymeru. Pokud však chcete kompletní frontendový MVC framework pouze s napojením na backendové API, tou lepší volbou pro Vás bude pravděpodobně Angular 2. A jenom připomínám, že se nejedná o propagaci, pouze o příklady aktuálně nepoužívanějších knihoven, které pracují se standardem webových komponent.
Myslím, že tohle je více než vyčerpávající, takže tady skončím. Pokud by jste někdo měl nějaké další dotazy, tak se neváhejte zeptat.
Zobrazeno 14 zpráv z 14.