Je zajímavé, kolik těch webů bez "Jávových skriptů" v podstatě nefunguje - a dokonce kolik jich nefunguje bez skriptů z naprosto nedůvěry-hodných zdrojů (počínaje Googlem).
Dokonce jsou stránky, kde musíte pomocí JavaScriptu potvrdit nastavení "coockies", abyste se dostali na čistě textové stránky, které nepotřebují ani scripty, ani "coockies"...
K te "male obrazkovosti" webu v devadesatkach jeden soukromy postreh:
Delal jsem si tehdy sve prvni stranky a (jelikoz jsem byl majitelem jen vytaceneho pripojeni) musel jsem je pak nekam umistit. Nechtel jsem za to platit a tak jsem hledal hosting zdarma. V cechach jsem nasel jen server mamedia.cz ktery nabizel prostor pro 35 kB textu BEZ OBRAZKU zdarma. Nahravani obrazku bylo za penize.....
Obtížně.
Nicméně jsem přesvědčen, že webové stránky by měly "fungovat" i bez JS, byť by to mělo být méně uživatelsky přívětivé. A Pokud tam nějaké scripty jsou, měly by být co nejmenší a spouštěné ze stejného místa, jako ty stránky.
Za největší "zlo" považuji volání scriptovacích knihoven "z půlky internetu", které mají za úkol jen vyvolání jednoduchého efektu, zobrazení reklamy či předání informací Goggle, Facebooku, apod. (Taková povinná, hodně utajená CAPTCHA na stránkách úřadu je opravdu lahúdka.)
Žel, stalo se zvykem přesouvat funkčnost od serveru do (webového) klienta, často zcela nekontrolovaně - server prostě věří tomu, že javascriptová "aplikace" provede veškeré kontroly a úpravy, a vstupům "slepě věří". Snadno pak vznikne rozpor mezi tím, co "vidí" uživatel a "co si server myslí, že vidí uživatel". (Například zobrazení data a času scriptem, kdy bez znalosti správného časového pásma je zobrazení v prohlížeči "o hodinu posunuté" a uživatel tak vlastně neví, na kolik hodin si objednává očkování...)
Problém není v tom, aby se moderní web obešel bez scriptů, ale aby na ně nespoléhal (když to není nutné). Jenže weby dnes netvoří "programátoři", ale "designéři" v pokročilých "klikacích" nástrojích, produkujících tuny kódu. Pro odeslání přihlašovacích údajů (e-mail, heslo, jednorázový kód) je pak například potřeba stáhnout "login-page" s několika megabajty scriptů.
Tohle vyřídím našim bezpečákům - že nám to omezují z náboženských důvodů
. ;oD
Ale vážně - představte si následující situaci: mým počítačem je "služební notebook", který mohu použít pro soukromé účely, ale musí to respektovat firemní bezpečnostní politiku. To znamená, že jsou blokované internetové stránky
(omluva za odkaz na jiné vlákno diskuse) jako "googleanalytics.com" a další, protože nelze spolehnout na jejich bezpečnost. Ale zároveň vyvstane potřeba komunikovat s potomkovou školou pomocí webové aplikace, do které se bez "google analytics" ani nepřihlásíte, neboť to používají všechny formuláře a všechna menu.
Já vidím chybu spíš než u chorobně paranoidních bezpečáků u programátorů oné aplikace, kteří si zjednodušili práci, než aby skutečně programovali, případně na straně školy, která něco takového považuje za výhradní prostředek komunikace s rodiči.
Promiňte, ale vaše definice "moderního webu" je dost strohá. Netvrdím, že se web musí zcela obejít bez JS, ale musí ho používat rozumně a když vidím některé dnešní weby, tak mě ta závislost na JS někdy až děsí. Někdy je lepší udělat ten formulář server-side, než zbytečně používat nějaký složitý JS, který blokuje načítání a zatěžuje procesor, protože weby vytváříme na "nadupaných" počítačích, ale používají je uživatelé s nevýkonnými mobily.
Ke všemu je tedy potřeba přistupovat s rozumem a individuálně, někde ten JS vše opravdu usnadní, ale jinde může být přítěží.
Budu s Vámi nesouhlasit hned ve dvou bodech:
1.- Ta "client-side validace" je dobrá, ale jednak se na ni server nesmí spoléhat (data lze obvykle "podvrhnout"), druhak se buď primitivní a selhává - nebo příliš komplexní a zdržuje. Mělo by to jít i bez ní.
2.- Použít skripty pro "hlasovací tlačítka" je dobré, ale nic nebrání možnosti nechat bez scriptů načíst celou stránku.
Zvláštní kapitolou jsou formuláře, kde je "by default" znepřístupněné odesílací tlačítko, které se zpřístupní až po kontrole vstupu. Pokud však data přesto odešlete, server je často bez dalšího akceptuje jako platná...
14. 2. 2022, 14:30 editováno autorem komentáře
Děkuji za pečlivou korekturu a upozornění na nesprávný výraz, který jsem již opravil na "méně intuitivní".
Řekl bych, že uživatelský zážitek z mnohých dnešních stránek je bez scriptů jen o málo horší, než s nimi.
Pokud ta stránka je ochotná fungovat s vypnutým scriptováním alespoň se základními funkcemi, je to pro mnoho uživatelů mnohem výhodnější, než koukat na blikající videa, reklamy, interaktivní prvky a spoustu dalšího balastu. Proto jsou tak oblíbená rozšíření od AdBlock po NoScript...
Vtip je v tom, že uživatel rád povolí scriptování na stránkách ("doménách"), kde to potřebuje (bankovnictví, e-shopy...), ale už mu vadí načítání reklamních bannerů, přihlašovacích (a "sledovacích") prvků, knihoven pro "protivné" efekty stránky... Někdy ho k tomu vedou náboženské
důvody (nenávist k Facebooku, apod.), někdy obava o soukromí (Google, Facebook...), někdy vyloženě bezpečácké
obavy o čistotu scriptů sdílených mnoha stránkami.
Poznámka: Jestli něco na dnešních stránkách opravdu nenávidím, tak to je "lazy loading" a přeplněnost obrázky - to je snad ještě horší, než animované GIFy na konci minulého tisíciletí. ;oD
Co konkrétně nejde udělat? I tu pitomou validaci formuláře už dnes zvládnete přes HTML, ale hlavně nejde o to JS vůbec nepoužívat, ale používat jej s rozumem.
Pokud je vrchol vaší práce v tom, že si stáhnete hromadu frameworků a z nich zbastlíte rádoby moderní web, tak ano, vy se bez JS vůbec neobejdete.
Jo, odložené načítání stránek je ultrahowadismus. Velice úzce to souvisí se skutečností, že přechod od těžkých klientů k lehkým (asi nejen pro mě) znamenal těžký sešup v uživatelské přívětivosti - stránky jsou nenažrané, pomalé, běžně se mění pod rukama, téměř vždy není možno použít pro ovládání pravé tlačítko myši, pole místo navyklých uživatelských chování obsahují roztodivné javaskriptové improvizace, nenačtení některých částí stránek se považuje za standard, aniž by to někoho (z výroby) trápilo či se to stránka snažila reflektovat, důsledkem je potom vzhedový nesmysl nebo nefunkčnost,...
15. 2. 2022, 14:43 editováno autorem komentáře
Zajistit výkonný server je "jednodušší", než zajistit výkonné koncové zařízení uživatelů. Když načítám novou stránku, žádné lokální JS nemám, mám jen stránku, která stahuje spoustu dat včetně často velkých JS knihoven, které se musí následně zinicializovat, tohle všechno zabírá čas, který zdržuje následnou práci se stránkou. Otevřít ten formulář pomocí JS pak stejně znamená odeslat požadavek na server, který vrátí nějaká data nebo část stránky a "vyrobit" novou stránku na serveru taky nemusí být tak náročné, když kešujete její části.
Vše má své pro a proti a je potřeba u všeho přemýšlet, ne jen všude bezhlavě cpát JS, protože j to pro vás jednodušší.
Všechno co jsi napsal jsou, snad až na lazy loading, poměrně zbytné funkce, které pomáhají, ale často nejsou zásadní a především jsou velmi často špatně implementovány, typicky ty "interaktivní filtry" jsou na řadě e-shopů úplně k ničemu.
To hlavní co jsi nepochopil je podstata diskuze, že není špatné použít JS, ale používat ho tak, aby se nestal přítěží, aby se při načtení stránky nestahovaly desítky nebo stovky kilobajtů frameworků, když z nich použiješ tři funkce.
PS. a i zde zmiňovaný Amazon je jasným důkazem, že tu podstatu diskuze vůbec nechápeš...
WAP je bezesporu podmnožinou "webu", byť má svá specifika. Kdysi dávno jsem dokonce provozoval "WAP stránky" - a ležely hned vedle běžné HTML verse.
Nicméně hlavní problém vidím ve slově "stránka" - kupříkladu spousta "zakazovaných" služeb vůbec žádné "stránky" nepotřebuje a jde v podstatě o "aplikace" - a kdyby to provozovatelům stálo za to, mohou dráždit stát žalobami, protože o znepřístupnění "aplikací" nebyla řeč a onen zákaz se tedy v podstatě týká jen jejich internetové prezentace (alias "webovek"). Na druhou stranu: znepřístupnění se obvykle děje na straně DNS, s čímž se sice "stránky" vyrovnávají obtížně (pokud nefunguje DoH nebo něco podobného), ale "aplikace" si s tím může poradit naprosto jednoduše.
Jestli pak klientovi na otevreni formulare staci jenom lokalni JS, nebo jestli je potreba vyrobit novou stranku na serveru uz muze byt dost citelny rozdil.
Takže klient místo hotové skříně dostane hromadu desek (obsah), návod (skript) a odkaz kam si má dojít pro šrouby (externí skript). Šroubovák a vrtačku musí mít doma (interpret skriptu). Ok, taky možnost :-)
K termínu "internetová stránka" mě napadá toto: pokud na Internetu existují webové i jiné stránky, pak termín "internetová stránka" zahrnuje všechny způsoby podávání informací pomocí stránek na Internetu. Co třeba WAPové stránky, patří pod WEB? Pokud všechny druhy "internetových stránek" zařadíme pod "webové stránky", pak je to vlastně jedno. Pokud bychom potřebovali ve skupině "internetových stránek" nechat jen "webové stránky", pak by bylo na místě používat výhradně termín "webové stránky".
Jenže ono to dneska funguje i obráceně: všeliké datové služby se propojují pomocí webových stránek a HTTP protokolu - dokonce existují i VPN skrz "webové stránky".
Ve výsledku zablokováním "webových stránek" můžete odstavit datovou služby, zatímco po "internetu" přenášíte textové stránky.
A aby toho nebylo málo, je za dostatečnou blokaci "internetových stránek" (myšleno "webových stránek") považováno nastavení na úplně jiné službě, DNS (která rozhodně není "stránkou"), podle stránek v dokumetu uloženém na webových stránkách ministerstva, na internetu.
Protože je to používané nesprávně. Je-li řeč o "webových stránkách", zcela jistě nejde o "paměťové stránky" či "stránky přenosového protokolu" (alias "rámce"), případně stránky PDF dokumentu načteného z Internetu FTP protokolem.
Ostatně: od počátku vytváříme "webovky", nikoliv "internetovky".
14. 2. 2022, 12:58 editováno autorem komentáře
1. Jestli nekdo nedela server-side validaci(to by me zajimalo, kdo takhle muze fungovat), tak je prase a vymsti se mu to. S JS to nema nic spolecneho. To je jako kdyby nekdo prestal pouzivat brzdy, protoze ma auto s airbagy. Taky to neni duvod prestat montovat airbagy.
2. Jasne, je to mozne. Ale je to prace navic. V tomto pripade sice primitivni, ale nekdo to musi nakodovat a otestovat, aby se obe varianty chovaly konzistentne.
To pak polovina stranek nefunguje a ta druha funguje omezene.
Zapnout JS:
- stránky potřebují JS z principu (eshopy, bankovnictví, webmail...)
- stránky by JS nepotřebovaly ale jejich obsah je hodně zajímavý
Vypnout JS:
- stránky fungují bez JS, lépe se prohlížejí a rychleji načítají
Vypnout úplně:
- stránky nefungují bez JS a jejich obsah není tak zajímavý
- stránky nefungují bez JS, mají zajímavý obsah ale kvůli různým efektům a vyskakovacím reklamám je jejich čtení utrpením
Možný přístup je vypnout JS všude a pak podle důležitosti dávat některé weby do "allow listu".
Obávám se, že je tomu jinak - za webové stránky (www) se dnes považují dokumenty ve formátu HTML, přičemž způsob jejich přenosu k uživateli je nepodstatný, tudíž protokol HTTP naopak webem není. S DNS to nemá už vůbec nic společného.
Podobně jako Lukáš si představuju, že pod právní termín „internetové stránky“ spadá např. Gopher.
Děkuji těm "neznámým nadšencům" z FAV ZČU, kteří v roce 1995 uspořádali v Plzni na Husovce přednášku o "World Wide Web". Tam jsem uviděl v Netscape Navigatoru www.whitehouse.gov a přestože jsem vůbec nechápal, k čemu to může být dobré, tak se zrodilo moje další IT směřování ...
Moderni web je takovy, ktery nezamrznul v devadesatych letech a vyuziva modernich technologii k usnadneni zivota navstevnikum. Bez JS jde prakticky jenom servirovat staticke stranky a odesilat formulare(bez client-side validace). Predstavte si, ze by se po kliknuti na palec nahoru u diskuzniho prispevku refreshla cela stranka. Ono uplne staci, ze je tady hezky postaru na pridani komentare formular na nove strance. Poslani prispevku tak znamena zbytecne dvakrat nacist celou stranku(pokud clovek chce zobrazit nahled, tak i vic). Ja hlupak jeste koukal na co by se tak dalo kliknout a zmacknul jsem "pravidla pro diskutujici". Zadne varovani, proste presmerovani na novou stranku, takze jsem prisel o rozepsany prispevek a musim ho psat znovu.
Ano, bez JS jde udelat treba prezentace restaurace, kde bude akorat menu a kontakty, ale cokoliv slozitejsiho uz dost tezko.
14. 2. 2022, 14:17 editováno autorem komentáře
A co je to "dobre"? Aby to fungovalo sto procentum uzivatelu?
Mohl bych se odkazovat na různá doporučení pro "dobré weby", ale raději použiji jinou definici: dobře to je, když to funguje u cílové skupiny. Pokud jsou cílovu skupinou uživatelé jednoho prohlížeče, jednoho systému s nainstalovanou sadou doplňků, tak stačí optimalizovat jen pro ně. Pokud jsou cílovou skupinou i exoti jako já, tak je třeba udělat víc :-)
HTML5 validace nelze lokalizovat, protože se o lokalizaci stará prohlížeč, nicméně i s tímto jde pracovat, byť je to nesmysl, když chci mít nějaké "cool" hlášky, tak logicky nemůžu použít výchozí nastavení, tak jako nemohu používá výchozí vzhled celého webu a použiji CSS na to, aby nějak vypadal.
Podstata problému není JS samotný, ale jeho nadměrné použití i tam, kde to třeba vůbec není potřeba, a to teď nemluvím o tom webu, na kterém "sněží", to už je na úplnou facku.
Pokud po vás nikdy klient nechtěl web bez JS, tak jste očividně neřešil web, který bude přístupný podle všech pravidel a nařízení, což vám nevyčítám, není to evidentně druh klientů, který by vás vyhledával natož, abyste o něj stál.
"ulevování" serverům je nějaká dnešní mantra programátorů, kteří si ulevují spíše sobě, protože je pro ně skládání webu z různých frameworků jednodušší, ve skutečnosti však přenášejí požadavky na výkon na klienta, který často, hlavně u mobilních zařízení, ten výkon prostě nemá a ještě dlouho mít nebude.
Vše záleží na konečném výsledku, který bohužel dost často nebývá tím, co bylo na začátku myšleno.
PS. a ano, dost často poznám rozdíl mezi tím, jestli je web udělaný dobře a nevyužívá mého výkonu na úkor serveru a když je to prostě JS přeplácaná bastlírna, která mi rozpálí mobil do běla.
"JS má být pomocník, ne pán."
Tady je dneska nejaka soutez o nejlepsi floskuli? Bez JS se neda delat prakticky nic nez neefektivne servirovat staticke stranky. Spousta sluzeb by bez JS vubec udelat nesla, nebo by to bylo nepouzitelne. Az na par bohatych korporaci na nejakou no-JS verzi skoro vsichni prdi.
Kde mi co bylo vyvraceno? Ze nemuzes udelat diskuzi bez reloadu stranky mi bylo vyvraceno kde? Bez JS neudelas spoustu veci jako lazy loading(ok, nedavno pridali html tag pro lazy loading obrazku, ale to ma jen velmi omezenou pouzitelnost), interaktivni filtry, pokrocilou validaci, cokoliv interaktivniho. Dneska uz je spousta aplikaci, ktere nerozeznas od desktopovych. Jo, treba zpravodajsky web, nebo e-shop muzes udelat bez JS, ale pro bezneho uzivatele to bude peklo z devadesatych let. Kde jsem napsal jaky nesmysl? Mimochodem ja se JS nezabyvam. Pred par lety jsem sice delal v jQuery, Angularu a Reactu, ale jinak jsem cisty backendak. I ja byl kdysi taky odpurcem JS, ale doba uz je proste jinde. Dneska uz na tech deset blaznu co maji zakazany JS kaslou prakticky vsichni. Jo... gmail se ti bez JS nacte celkem hezky, ale zkus treba google calendar. I ten zde zminovany Amazon sice na prvni pohled vypada hezky, ale zjistis, ze tam spousta veci nefunguje.
co to tu plácáte, přetváříte si problém podle sebe. Nikdo přeci neříká, že pokud web používá JS, dostává klient něco nehotového. Jde o to, JS a o obecně moderní web umožňuje "ulevit" serverům ve výpočetním výkonu a v neposlední řadě i uleví datovým tokům, protože se dotahují do stránek nej relevantní části (neřeším dnešní velikost a požadavky na grafiku).
Klient, tj. vy, nepoznáte v browseru rozdíl.
19. 2. 2022, 19:19 editováno autorem komentáře
tak si vytrhněte kabel ze zdi a zkuste offline internet :-)
To je asi jako s OS, dříve jsme měli 640k, kód se psal v Asembleru. Používal se DOS. Dnes lidé vyžadují grafický OS. Důvodem je to, že i paměti a celý HW je dostupnější.
Btw, zkuste vymyslet interaktivní web, bez použití JS a zbytečných předčítání celých stránek...
To, že dnešní weby načítání podivné JS je z 99.99% kvůli balastu jménem "reklama", která je prolezlá celým internetem a mnohdy je JS kód na úrovni retardované opice. Nehledě na to, že weby dnes dělá každý garážmistr na koleni a ne lidi, kteří tomu rozumí.
HTML5 validace jsou nesmysl a používají jen garážový matlalové... ;-) Nelze přestylovat, nelze lokalizovat, v podstatě s ní nelze udělat skoro nic. Uznávám, že třeba omezení na čísla je fajn, ale tím to tak asi končí.
Jestli někomu na webu vadí JS, fajn, ať si třeba Rudná elektrony z auta a vrátí se 200 let zpět a nasadí loukotě.
Nehledě na to, že záleží na technologii, která je použitá. Pokud někdo bastlí spaghetti code v PHP, může ovlivnit výsledný JS. Na druhou stranu z cca 5tis klientů co jsem měl ve firmě, nikdo nikdy nepřišel s požadavkem, aby web fungoval bez JS. Pokud ano, hnal bych ho svinským krom z firmy... :-D
Snad vůbec - web ho dost rychle smázl z povrchu zemského.
Bylo to velmi statické: položka menu byl buď text (bez dalších referencí), nebo odkaz na menu. Podobně, jako když IMAP seerver používá mailbox formát, tak schránka buď obsahuje maily, nebo vnořené schránky, ale ne oboje.
Tehdy aktuální kódování češtiny bylo těžko řešitelné, stejně tak generované dokumenty (aktualizované cokoliv z databáze).
Prakticky to skončilo přechodem na grafická prostředí a dostupným webovým klientem (tedy přechod od NCSA Mosaic na vzácné workstation na Netscape na běžných Windows 95+). A protože do té doby u nás internet byl vzácný, dial-up drahý, tak vlastně web u nás neměl ani co porážet.