« 1 2 »
Autor Zpráva
Sho
Profil
Zdravim, co sa tyka javascript som novy a tak sa pytam ako je to dneska s jeho pouzivanim na webe? Myslim z hladiska funkcnosti stranky. Este stale plati pren ako kedysi že, pouzivat ale iba tak aby to fungovalo aj bez neho?

Pytam sa preto lebo doba ide dopredu a ja mam pocit, že javascript uz je nevyhnutne mat zapnutny, lebo ked som ho skusal napriklad vypnut tak mi skoro vsetky stranky nesli. Znamena to, že už sa ho dneska nemusi, človek báť použiť?

P.S.: Pri bezpecnosti stránok je to pochopitelne.... dufam :D

Za vase odpovede dakujem :)
lionel messi
Profil
Sho:
Este stale plati pren ako kedysi že, pouzivat ale iba tak aby to fungovalo aj bez neho?
JS používam pomerne málo, ale s touto tézou súhlasím.

lebo ked som ho skusal napriklad vypnut tak mi skoro vsetky stranky nesli.
Toto je podľa mňa skôr znakom neohľaduplnosti tvorcov stránky k rôznym skupinám používateľov. Podľa mňa sa množstvo ľudí s vypnutým JS nemení a vždy bolo pomerne malé — nalejme si čistého vína: Aké percento používateľov internetu vie, že existuje nejaký JS (nebodaj že sa dá vypnúť).

Znamena to, že už sa ho dneska nemusi, človek báť použiť?
Ja som sa JS nebál použiť nikdy, keď to bolo opodstatnené, ale zároveň som si položil otázku: Ako sa to bude správať v prípade vypnutého JS? Dá sa k obsahu dostať, aj keď je JS vypnutý (dôležitá vec z hľadiska robotov).
Marti_n
Profil
Ja mám zase opačný názor ako lionel messi.
Javascript sa dáva čoraz dopopredia webov (viď konkurenčné boje prehliadačov o rýchlejšie spracovanie JS, tuším víťazi V8 od Chrome)
Nové prehliadače už majú zapnutý javascript a stavím sa, že bežný užívateľ ho ani nevie vypnúť. Myslím si, že je 21 storočie a interaktivita patrí k webom (AJAX a podobne).

Môj postoj j jQUERY - Všetko čo je v jQUERY si vieš sám napisať v Javascripte, pretože jQuery je len knižnica napísaná v Javascripte.
Ja osobne považujem za hanbu programátorovi, keď používa jQuery a pýta si za web 1000€. Taký je moj postoj :)
Sho
Profil
Marti_n: Tak to rozhodne suhlasim ze mnohy nevedia vypnut vlastne ani ja to uz neviem iba vo firefoxe cez about:config.... a v chrome som neuspel vobec :D kedy so to bolo jednoduche cez nastavenia ale dneska som nic tak nenasiel :D takze na tom co vravis je kus pravdy...

K tomu jQUERY, ja ho mam osobne rad lebo (ale ber to ako pohlad zaciatocnika s jquery) pre mna je primarne PHP-ko ale nemam rad ked dizajn zaostava a ked si potrebujem nieco rychlo sprvit a pomoct tak jQUERY je ako pre mna.... co si uctuje firmy a co im zaplatia je druha vec :D ale urcite by som jQUERY nezavrhoval ved mnoho firiem ho rado vyuziva lebo predsa usetri kopu casu a cas su peniaze :D

A este raz dakujem a to s jQUERY ber len ako moj pohlad na vec :)
Radek9
Profil
Sho:
Este stale plati pren ako kedysi že, pouzivat ale iba tak aby to fungovalo aj bez neho?
Jak bych to jen popsal. JS v prohlížeči je dobrým sluhou, ale špatným pánem. Pokud děláš obyčejnou webovou stránku, jistě není problém vytvořit i řešení bez použití JS (samozřejmě za cenu efektů apod.). Existují ale i weby a služby, které jsou vyloženě zaměřené tak, že bez JS by nefungovaly. Viz například Google Docs.

Zároveň bych rád uvedl na pravou míru jQuery a často omítanou frázi „čistý JavaScript“. jQuery není nic jiného než knihovna napsaná v JS, která pouze obaluje DOM rozhraní prohlížeče a stává se tedy v určitém smyslu jeho alternativou. Tím pádem je ale potom hloupost uvádět možnost JS, nebo jQuery. Ta volba je DOM, nebo jQuery. JavaScript je prostě programovací jazyk a je nutné, abys ho pořádně znal, než začneš používat API a knihovny.

Tenhle fakt bohužel mnoho začátečníků přehlíží a nabývají tak dojmu, že jQuery je náhrada JavaScriptu a že se ho skoro nemusí učit. :-)
Marti_n
Profil
Každý má iný pohľad na jQuery. Mne príde strašne blbé keď si niekto na web nahodí veľkú knižnicu jQuery, ale využije len 1% z toho alebo si celý web prepláca a ani nevie čo daná funkcia robí, len to niekde videl, tak si to tam dá aj on. Pre začiatočníka ma jQuery svoje výhody a nevýhody. Výhody v tom, že máš už nejaký kód pred sebou a vieš si ho naštudovať a nevýhoda je asi tá, že daný človek sa nenaučí ani javascript, len používa zabehnuté veci, ale sám nevie ani čo to poriadne robí. Ja si ani zas nemyslím, že jQuery moc ušetrí času, možno pri prvom projekte, ale keď si vytvoríš vlastné funkcie v Javascripte, tak ich môžeš používať aj neskôr. Príklad ja mám jednu funkciu na AJAX a použil som ju už na 4roch projektoch.

V Chrome vypneš javascript takto: Vedľa url máš taký biely papier (ikonku), klikom na ňu sa ti rozbalí panel a tam si môžeš vypnuť JS pre daný web :)
1Pupik1989
Profil
Není ani tak chyba, že JQuery používají začátečníci. Spíš je problém v tom, že jsou i líní přečíst si chybové hlášky. Nové Jquery už hodně starých prohlížečů nepodporuje a skočí chybou.

Já osobně nikdy nenašel důvod, proč bych si měl ulehčit práci na úkor zpomalení webu. Nemluvím o velikosti knihovny, mluvím o rychlosti. Na ten úkor jsem si napsal emulaci document.querySelector a document.querySelectorAll, akorát vrací jen obyčejné pole místo NodeList. A to použiji jen opravdu zřídka, když jsem líný.

Sizzle běží rychle, pokud zmiňované metody jsou dostupné, jinak je to pomalé. Za tu dobu JS v IE 8 dokáže rozparsovat 3DS soubor a ještě mu 15ms zbude.
Bubák
Profil
V Chrome jde vypnout JS i globálně:
> Nastavení > Zobrazit rozšířená nastavení... > Nastavení obsahu > JavaScript
Pro pokročilé uživatele uživatele Firefoxu, kteří chtějí vypínat JS, je doporučený doplněk NoScript.
joe
Profil
1Pupik1989:
Nové Jquery už hodně starých prohlížečů nepodporuje a skočí chybou.
Dnes už nemá příliš cenu zabývat se optimalizací na historické prohlížeče. Je to stejné, jako kdybys chtěl vytvářet moderní mobilní aplikaci a budeš chtít podporovat například Android 2.

Já osobně nikdy nenašel důvod, proč bych si měl ulehčit práci na úkor zpomalení webu.
Protože zbytečně píšeš něco, co už napsané je. Sice v jQuery nemusí být pár věcí dokonalých, ale fungují a jsou vyzkoušené spoustou lidí. jQuery není jen pro zjednodušení výběru elementů z DOM, ale obsahuje spoustu dalších funkcí, které se často hodí a ty stejné funkce budeš vždy muset psát znovu.

Zpracování je otázka milisekund, to návštěvník nepozná. Pracovat bez jQuery nebo jiné další podobné knihovny je jako psát projekt v PHP bez frameworku - ztráta času.
1Pupik1989
Profil
Neznám nic, co by nešlo emulovat i v IE 8. Ještě jsem na takovou metodu/vlastnost/funkci/cokoliv nenarazil.

Ušetření zápisu chápu, proti tomu nejde nic vytknout.

Mě jen vadila ta občasná nefunkce některých metod.

Nejspíš ani nevím co všechno JQuery v dnešní době umí, použil jsem ho naposledy před dvěmi lety, takže ho možná opravili.

Rychlost zpracování návštěvník nepozná, ale já ano.

V PHP píšu vždy bez frameworku, asi jsem jiný. :)
Joker
Profil
Sho:
Este stale plati pren ako kedysi že, pouzivat ale iba tak aby to fungovalo aj bez neho?
Samozřejmě exitují čistě JS aplikace, které předělávat do HTML nemá smysl.
Ale u běžných webů je vhodné zajistit funkčnost i bez JS. Už proto, že vyhledávací roboti JS (většinou) nemají.

Marti_n:
Myslím si, že je 21 storočie a interaktivita patrí k webom (AJAX a podobne).
Tak ale otázka nestojí. Asi málokdo by tu tvrdil, že by se JS vůbec neměl používat.
O čem diskutujeme je, že by se měl používat ohleduplně.
Vlastně je to úplně klasický problém „mně to v mém prohlížeči s mým nastavením funguje a vy ostatní se přizpůsobte, nebo si trhněte“.

Ja osobne považujem za hanbu programátorovi, keď používa jQuery a pýta si za web 1000€.
To je takový ten „Not invented here“ přístup - Zavrhování komponent vyvinutých někým jiným z důvodu, že je vyvinul někdo jiný.
Samotné použití jQuery není problém, otázka je k čemu a jak se používá. Že se často používá zbytečně neznamená, že nejde použít i smysluplně.

joe:
Zpracování je otázka milisekund, to návštěvník nepozná.
Tak s tím si dovolím nesouhlasit, už vícekrát jsem z existujícího kódu odstraňoval jQuery konstrukce právě z důvodu, že byly moc pomalé.
Samozřejmě nad tím, že blok kódu s jQuery trvá třeba 20 ms, se dá mávnout rukou. Pak je potřeba ten blok volat pro 10 elementů a už vzniká uživatelem postřehnutelná prodleva. A pak si někdo usmyslí, že to s těmi 10 elementy bude jen jeden blok a takových bloků bude na stránce 15 a máte problém.
Pak se to přepíše do nativní varianty a odezva je zase okamžitá.

Čili minimálně v kódech, kde algoritmus začíná třeba „Pro všechny buňky tabulky…“ bych velmi uvažoval, kolik těch buněk může potenciálně být a jestli se v tom bloku jQuery raději nevyhnout.
Chamurappi
Profil
Reaguji na Sha:
doba ide dopredu a ja mam pocit, že javascript uz je nevyhnutne mat zapnutny
Co se z pohledu uživatele změnilo oproti dřívějším dobám? Dříve se JS používal na kontroly formulářů, na otravné animace a na složitější webové aplikace (mapy, webmaily, administrace apod.), dnes je tomu snad jinak?

ked som ho skusal napriklad vypnut tak mi skoro vsetky stranky nesli
Jsi si jistý, že chodíš na stejné stránky, jako všichni ostatní?
Tvůrci stránek jsou již celkem často schopní vykouknout ze své ulity typu „všichni, koho znám, používají prohlížeč ten a ten“, protože existují dobře dostupné a srozumitelné statistiky, ale mnozí zůstávají v ulitě typu „všichni, koho znám, chodí na weby ty a ty“ a pak se snaží úmyslně či z lenosti napodobovat chyby ze své oblíbené množiny webů.

Můžeš tedy říct, že Facebook nefunguje bez JS (teď nevím, jestli je to pravda), ale ten používá jen miliarda lidí, pořád ti zůstávají dvě miliardy připojených, kteří jsou krás i hrůz Facebooku ušetřeni. Jistě bude mnoho z nich v nezajímavých zemích, ale nemálo jich je i v našich končinách. Těm je celkem ukradené, jaké nároky na prohlížeč a na uživatelské návyky má Facebook.

Znamena to, že už sa ho dneska nemusi, človek báť použiť?
Když něco vytvářím, přijde mi normální rozvrhnout práci tak, aby vše, co může rozumně fungovat bez JS, opravdu fungovalo bez JS. Nevytvářím zbytečné závislosti.
Čeho by se dnešní odpovědný vývojář měl bát, to jsou pluginy v prohlížečích, zejména adblock (pokud mu na návštěvnících s adblockem záleží).


Reaguji na Marti_na:
JavaScript je sice schopnější než dříve, ale to nutně neznamená, že je uživatelsky žádanější. Mnoho činností, které mají skripty na svědomí, je rušivých a zdržujících.

Nové prehliadače už majú zapnutý javascript
To platí cca 18 let.

Myslím si, že je 21 storočie a interaktivita patrí k webom
Podobným úslovím nerozumím. Doba uplynulá od okamžiku narození kontroverzního mudrce, kterým odstartoval stávající letopočet, nemá na JavaScript žádný vliv :-)


Reaguji na joa:
Dnes už nemá příliš cenu zabývat se optimalizací na historické prohlížeče.
Proč „dnes“? To také platí prakticky odjakživa.
Nevím, jestli 1Pupik1989 narážel na jQuery 2.0, to nefunguje ve stále hojně užívaném Exploreru 8… jen proto, aby se ušetřila datová velikost o pár procent, nenabízí žádné nové API, které by ve starších prohlížečích nemohlo fungovat (třeba gettery/settery).
Joker
Profil
Chamurappi:
Dříve se JS používal na kontroly formulářů, na otravné animace a na složitější webové aplikace (mapy, webmaily, administrace apod.), dnes je tomu snad jinak?

Dnes ještě interaktivní načítání kusů stránky (což někdy může být trochu problém přenést do čistého HTML).

Můžeš tedy říct, že Facebook nefunguje bez JS (teď nevím, jestli je to pravda)
Já byl natolik zvědavý, že jsem to už vyzkoušel, hned jak jsem četl to „mi skoro vsetky stranky nesli“ :-)
Standardní „desktopový“ Facebook bez JS moc nefunguje, ale uživatel bez JS se může přepnout do „mobilové“ varianty (m.facebook.com), která je bez JS.
Čili i Facebook si dal tu práci a vyrobil variantu pro uživatele bez JS.
Sho
Profil
Joker:
A napadlo by bezneho uzivatela prepnut na mobilnu verziu? Lebo keby to nenapíšeš, tak by ma to nikdy nenapadlo...
Joker
Profil
Sho:
A napadlo by bezneho uzivatela prepnut na mobilnu verziu?
Poté, co vleze na Facebook bez JS a přečte si hlášku „Chcete-li používat všechny funkce Facebooku, povolte ve svém prohlížeči JavaScript nebo přejděte na náš mobilní web“ (poslední dvě slova jsou odkaz) bych řekl, že ano.
Sho
Profil
ja som nijaku taku hlasku nedostal :D ale neva rozhodne dakujem a dost ste mi pomohli si to vyjasnit :D
joe
Profil
Joker:
Samozřejmě může jQuery zpomalovat a o hodně, pokud se používá bezmyšlenkovitě. Už jsem také přepisoval pár kousků kódu do čistého JS právě proto, aby došlo ke zrychlení. Stejný problém ale může nastat i v případě čistého JS při použití nevhodného řešení.
Například pokud někdo používá pro tisíce buněk vytváření jQuery objektů jen pro získání třeba jeho id atributu, je to špatně.
Zpracování v ms, kdy "je to prakticky jedno" jsem spíš myslel na běžné jednoduché stránky s "tradičníma" efektama.

Chamurappi:
Proč ‚dnes‘? To také platí prakticky odjakživa.
Ano, ta věta je pravdivá ve kterýkoli den :-) a i když jsem to původně tak nezamýšlel, v tom je to kouzlo.

... & 1Pupik1989:
Sám si myslím, že jQuery 2 je zbytečné, nevidím důvod zahazovat funkčnost, když už ji tam jednou měli :-) Používám verzi 1.9.

Jinak zkus se podívat na řadu svých projektů, pokud jich máš více a s jistotou říct, že na každém máš stejné funkce a můžeš se spolehnout, že když se k projektu za čas vrátíš, nebudeš muset nejdříve zkoumat, jestli tam onu funkci máš, to je neuvěřitelná výhoda použití jQuery (/frameworku/knihovny).
1Pupik1989
Profil
No, abych řekl pravdu, tak za poslední dobu jsem použil jedině Ajax. Jednou potřebuji binární kód (pro IE opět vyjímka) a 2x načtu prostý text. Tradiční web už jsem tak 2 roky neudělal. Teď vymýšlím použití GLSL v softwarovém renderingu. Čili i IE bude moci (už může) vykreslit 3DS/OBJ 3d objekty podle shaderů. Proto mi nejspíš stačí i nativní funkce.

JQuery umí zřídka načíst ze souboru binární hodnoty, aby byly v pořádku. Já k tomu mám ještě VB script, bez kterého to nejde. Proto jsem psal, že neexistuje nic, co bych v IE nedokázal. Dokonce u canvasu jsem dodělal i clearRect a toDataUrl metody. Už to vypadá,že se spíš chvástám. Nicméně obyčejnému smrtelníkovi se to jednou může hodit.

Jak není nějaká funkce/metoda/vlastnost a já jí potřebuji, tak jí dodělám. JQuery skončí chybou. Takže mi přišo smutné opravovat něco, co v dřívější verzi šlo.
Lexter
Profil
Inu já mám taky jQuery rád, ale opravdu jeho rychlost není nijak závratná, protože za sebou tahá spoustu věcí, které nepotřebuju. Při tvorbě něčeho aspoň trochu většího a a při potřebě zwrapovat velká data to není nic super. Viz například http://orbit.sale-o-mat.com/example-1/. Kde se nyní snažím kritické části přepsat do čistého JS.

Každopádně dnes je již JS nedílnou součástí webu. Opravdu jsem nenarazil na nikoho kdo by ho měl standardně vypnutý.
Joker
Profil
joe:
Sám si myslím, že jQuery 2 je zbytečné
To jsem taky nepochopil.
Právě v univerzálnosti vidím jednu z hlavních výhod a možná i smysl jQuery, tj. když to udělám přes jQuery, dá se spolehnout, že to bude fungovat všude. Kód funkční jen v moderních prohlížečích si napíšu sám bez jQuery.

Lexter:
Opravdu jsem nenarazil na nikoho kdo by ho měl standardně vypnutý.
Google? Resp. vyhledávače obecně?
Lexter
Profil
Joker:

Měl jsem na mysli lidi. Javascript je v drtivé většině případů stále pouhé oživení. Dá rozum, že není rozumné stavět obsahový web tak, aby nebyl dostupný bez JS právě v ohledu na roboty.
Chamurappi
Profil
Reaguji na Jokera:
Dnes ještě interaktivní načítání kusů stránky (což někdy může být trochu problém přenést do čistého HTML).
Bannery se načítají dynamicky také už hodně dlouho. Je pravda, že teď se častěji načítají i ty důležité časti (což má občas nevýhody i pro uživatele se zapnutým JS).

Facebook bez JS moc nefunguje, ale uživatel bez JS se může přepnout do ‚mobilové‘ varianty
Twitter bez JS přesměrovává na mobilní web automaticky.


Reaguji na joa:
Jinak zkus se podívat na řadu svých projektů, pokud jich máš více a s jistotou říct, že na každém máš stejné funkce a můžeš se spolehnout, že když se k projektu za čas vrátíš, nebudeš muset nejdříve zkoumat, jestli tam onu funkci máš
Každý projekt je jiný, nemívají téměř nic společného. Procházení DOMem je obvykle okrajová činnost, nemám na něj zatím žádnou vlastní oblíbenou sadu funkcí. Animace i AJAX píšu obvykle z hlavy.
Často bývám v roli toho, kdo opravuje či doplňuje cizí kódy, takže nejistoty a zkoumání jsou přirozenou součástí postupu. Nejnevyzpytatelnější bývají právě všelijak zamotané jQuery špagety.


Reaguji na 1Pupika1989:
Tvůj příspěvek mi připomněl, že ve starých Explorerech (verze 4 až 6) šlo vykreslovat 3D objekty přes DirectAnimation přímo, tedy bez žvýkání binárních formátů. Živě si vzpomínám, jak jsem otáčel krávu. Asi v tom byly bezpečnostní díry, když to MS v pozdějších verzích úplně zakázal.

Nicméně obyčejnému smrtelníkovi se to jednou může hodit.
Fandím tvému snažení, i když bohužel moc nevěřím, že obyčejným smrtelníkům skutečně pomůže.


Reaguji na Lextera:
Opravdu jsem nenarazil na nikoho kdo by ho měl standardně vypnutý.
Já už narazil na několik lidí s pluginem NoScript. Všichni byli spokojení :-)
joe
Profil
Chamurappi:
Každý projekt je jiný
Plno projektů, na kterých se podílím obsahují pořád ty samé věci a je nudné je psát pořád dokola. A to, si myslím, že dělá každý, kdo nějakou větší knihovnu nepoužívá (ať už známou nebo svou) spolu s projektem, později musí dohledávat, kterou funkci vlastně může použít a když žádnou nenajde, musí ji napsat (a ne každý dokáže napsat správně požadovanou funkci, ale pokud existuje, její využití není problém). Například úplně základní funkce, které by všude měl být - kontrola existence třídy, přidání nové třídy, odebrání, kontrola elementu vůči selektoru, nalezení nejbližšího rodiče, atp.

Joker:
Už proto, že vyhledávací roboti JS (většinou) nemají
Třeba Google robot už nějaké jednodušší kousky docela dobře zvládá indexovat :)
anonymníí
Profil *
joe:
kontrola existence třídy
To jde krásně jednoduchým regexem, nedůvod používat jQuery. Často ale existenci třídy nepotřebuji, snad jen u validace formulářů.

přidání nové třídy
el.className += ' nova-trida'

odebrání
Opět jednoduchý regex, nahrazení stringu za nic.

kontrola elementu vůči selektoru
To nechápu. Jako že hledáš element #id a potřebuješ vědět, o jaký tag se jedná? To jde i bez jQuery, ale v praxi jsem to nikdy nepotřeboval.

nalezení nejbližšího rodiče
rekurzivní smyčka s kontrolou tagName, to jde snad také bez jQuery, ne?
joe
Profil
anonymníí:
Tušil jsem, že se najde někdo, kdo nepochopí můj záměr toho příspěvku. Samozřejmě, že všechno lze napsat v čistém JavaScriptu, když jQuery není nic víc, než JavaScript.

Před psaním dále si dovolím ale namítnout:

el.className += ' nova-trida'
To není dobře, chybí kontrola, zda už stejná třída není přiřazena.

To nechápu. Jako že hledáš element #id a potřebuješ vědět, o jaký tag se jedná?
Například mám element z DOM a potřebuji ho otestovat, zda odpovídá selektoru #komponenta.modifikator-1.modifikator-2

---

Tak a teď mi prosím nastiň, jaký by byl tvůj postup, pokud bys tyto věci chtěl stále opakovat a budeš mít třeba 100 souborů, ve kterých bys je rád opakovat.
anonymníí
Profil *
joe:
To není dobře, chybí kontrola, zda už stejná třída není přiřazena.
to byla ukázka. Samozřejmě jí může předcházet kontrola, jestli ta třída už přiřazena není. Nebo jí přiřadit podruhé, tím se (většinou, aby někdo nechytal za slovíčko), nic stát nemůže - ale není to to správné, kontrola by tam být měla.

Tak a teď mi prosím nastiň, jaký by byl tvůj postup, pokud bys tyto věci chtěl stále opakovat a budeš mít třeba 100 souborů, ve kterých bys je rád opakovat.
Funkce? A je jedno, jestli jedna, dvě, tři? Bude/ou na pár řádek.

Ale o to tu nejde, jde už jen o to, že potřebuješ testovat nějaký prvek DOMu na tenhle přitroublý selektor. Děláš, jako bys vybral náhodný prvek DOMu, ale tak to přeci není. Vybíráš ho na základě něčeho, co ho dostatečně identifikuje. Alespoň do té míry, abys nepotřeboval tyhle zhůvěřilosti. Já nikdy, a že jsem toho (i v JS) udělal už dost, tvé ukázkové případy nepotřeboval. Řešíš podobné úlohy často? Neděláš někde chybu?

Neber to tak, že haním jQuery. Nehaním a taky s ním, občas, pracuju. Jen se mi zdá, že na ukazování jeho předností, vybíráš naprosto nevhodný a nereprezentativní vzorek akcí, které jím lze obsloužit.
joe
Profil
anonymníí:
na ukazování jeho předností, vybíráš naprosto nevhodný a nereprezentativní vzorek akcí
Já ale neukazuju přednosti jQuery. Já jen dokazuji, že každý, kdo pracuje bez knihovny a začíná na každém projektu od nuly si píše takový vlastní seznam funkcí, které používá, a později se dostane k tomu, že je asi možná opravdu lepší využívat něco uceleného a vyzkoušeného a právě to používat na každém projektu. Ty funkce, které jsem uvedl, jsou právě naprosto základní funkce.

Kdokoli jiný přijde k projektu, bude muset hledat zda tam takové funkce někde jsou, jak se jmenují, možná narazí na chybu (viz přidání třídy) a to jsou kroky, které jsou naprosto zbytečné.

potřebuješ testovat nějaký prvek DOMu na tenhle přitroublý selektor
Co je na něm přitroublého? Přijde mi to jako normální selektor.

Děláš, jako bys vybral náhodný prvek DOMu, ale tak to přeci není
Je právě úplně kdykoli, kdy na jakémkoli elementu zjistím například rodiče elementu.
anonymníí
Profil *
joe:
Nechce se mi dlouze hádat, asi tě nepřesvědčím.

Já jen dokazuji, že každý, kdo pracuje bez knihovny a začíná na každém projektu od nuly si píše takový vlastní seznam funkcí
Nemusí psát seznam funkcí, ne každý (jsi asi čestná výjimka) potřebuje 100x v jednom webu měnit třídu, přidávat nebo ubírat. A zvládne to s nativními JS vlastnostmi. Naopak mi přijde nesmysl, kvůli těmhle, jak ty říkáš, základním a jednoduchým věcem tahat do webu framework s nějakou velikostí. I když tam už nějaký framework je, právě tyhle dvojřádky píši bez jeho aplikace.

Přijde mi to jako normální selektor.
Selektor je to vcelku normální, to ano. V rovině HTML/CSS. Nenapadá mě reálná situace, kdy bych potřeboval zjišťovat pomocí JS, jestli mnou vybraný element má právě tyto atributy. ID možná (pak ale vybírám právě podle ID), třídy mi tam přijdou trochu navíc.

Je právě úplně kdykoli, kdy na jakémkoli elementu zjistím například rodiče elementu.
S tímhle nesouhlasím. Pokud vybírám rodiče něčeho známého, je i ten rodič (nebo nejbližší parent, chceš-li, abys mě opět nechytal za slovo, že mlluvím jen o rodiči), do jisté míry známý. Vybírám ho v nějakém kontextu (kontextu nějaké stavu, tedy i vím, jestli je např. rozbalený nebo není, a tím pádem, i jakou má třídu, aniž bych ji musel explicitně znovu zjišťovat a ověřovat). Proto se mi tvůj postup moc nezdá.

Celkově se mi zdá, že se zde snažíš přesvědčit o něčem, v dobré víře, ale přesvědčuješ špatnými argumenty. A pokud potřebuješ v rámci webu zjišťovat třídu, selektor elementu apod. více než málo, skoro se bojím, že pracuješ neefektivně (je to má domněnka, žádný z tvých projektů jsem neviděl, vycházím jen z praxe, kdy vím, co se běžně používá a co není třeba).
joe
Profil
anonymníí:

Nemusí psát seznam funkcí
V ideálním případě ano. Nebudu přece do každé třídy psát funkci například pro zjištění rodiče na základě selektoru, to by byl kód značně redundantní.

Naopak mi přijde nesmysl, kvůli těmhle, jak ty říkáš, základním a jednoduchým věcem tahat do webu framework s nějakou velikostí
To není pouze kvůli těmto věcem. To co uvádím, je naprostý základ, třídy, které jsou potřeba v každém projektu a ty je vždy píšeš znova. A psát cokoli znova zabírá zbytečně čas a přidává na chybovosti, protože se jednou může stát, že něco někde zapomeneš, budeš to mít zbytečně rozfrkané na více místech (viz rekurze pro zjištění rodiče) a najednou dojdeš k tomu, že bys rád u všech něco přidal a budeš muset najít všechny výskyty. Takže jen popisuji naprosto základní refaktoring.

ID možná (pak ale vybírám právě podle ID), třídy mi tam přijdou trochu navíc
Identifikátor může být skládán dynamicky. Třídy (jako modifikátory) tam mohou být právě proto, abys zjistil, v jakém je element vizuálním stavu (například rozbalený nebo zavřený) a ty bys chtěl vybrat jen některý stav. A nemusí jít jen o ID a třídy, může jít i o kontrolu vlastních atributů.

Pokud vybírám rodiče něčeho známého, je i ten rodič do jisté míry známý
Bohužel není. Z toho, co popisuješ, platí jen v případě kdy nikdy nesáhneš na HTML a to není nejšťastnější řešení. HTML se může kdykoli měnit. A pokud ti v cestě při zjišťování rodiče přibude další element (to se může stát velmi jednoduše), rozbiješ celý kód.
anonymníí
Profil *
joe:
Když myslíš :-) Možná se jen blbě vyjadřuješ, nevím. Pokud ne, tak nemáš pravdu. Jak jsem psal, do dlouhých hádek se z časových důvodů pouštět nechci a nebudu. Třeba se k tématu vyjádřím později, teď opravdu ne. To jen, aby to nevypadalo, že z debaty utíkám, jen mě tlačí čas.
« 1 2 »

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: