Korištenje nestandarnih atributa (html) u JS razvoju

E sad kod izrade složenijih HTML sučelja ponekad je na html tagove dodati i neke informacije koje su vezane za samo sučelje.

Vidio sam kod nekih da kreiraju svoje atribute recimo

. Sad pročitao sam negdje da to ne smeta jer broswer takve stvari ignorira dok JS frameworci se mogu služiti tim atributom.

E sad primjetio sam da u nekim slučajevima se gura sve u standardne atribute, recimo gornji primjer u ovom slučaju bi bio:

I sad pošto se informacije guraju u standardne linkove potrebno ih je i nekako parsirati dok kod prvog primjera sve je čisto i jasno

E pa sad vaše mišljenje o primjeni, jer meni se čini da prvi primjer nebi prošao validaciju i pitam se dali razvoj treba podrediti validaciji.

Što se mene tiče prvi primjer bi bio izbor.

U posljednje vrijeme sve podređujem web standardima. Na kraju krajeva to može biti samo prednost.

U praksi najčešće koristim sljedeće atribute (po učestalosti): class, id, lang, title te po potrebi vrijednosti spremam u JSON notaciji što je kasnije vlrlo lako parsirati.

Ja pucam stvariu nestandardne atribute, jedno je validirati stranicu, a drugo je imati validaciju za šminku :slight_smile: , ako sve podređuješ validaciji, onda imaš validaciju za šminku, a ako popraviš sve greške i imaš nešto tako, onda imaš validiranu stranicu, koja neće proći validator, ništa više :slight_smile: Nema ništa loše u upotrebi ne standardnih atributa

Nepotrebno i bezveze.

obrazloži. Opisat ću ja jednu situaciju, Imaš tablicu, par stotinjak redova, svakih nekoliko sekundi dohvačaš nove upite iz baze, ako se nešto promjeni trebaš primjeniti neki efekt na red, još bolje taj efekt ima nekoliko razina recimo 5-6 koraka(nakon što je gotov prvi korak ide 2… ). Koji bi tebi tu bio jednostavniji i bolji način umjesto da uvedeš novi atribut unutra npr korak i staviš mu razinu na kojoj je, npr <tr korak=“0”, <tr korak=“1”…

Koja je razlika?

Postoje samo 2 mogućnosti. Ili imaš stranicu napisanu po standardima, ili ju nemaš.
Kao što sam već rekao, smatram da validna stranica može biti samo prednost. Ni jedan standard nije donešen radi šminke.

[quote=“junior”]Koja je razlika?

Postoje samo 2 mogućnosti. Ili imaš stranicu napisanu po standardima, ili ju nemaš.
Kao što sam već rekao, smatram da validna stranica može biti samo prednost. Ni jedan standard nije donešen radi šminke.[/quote]

SE ti neće uzeti za zlo nestandardne atribute, browseri ih neće krivo protumačiti, jel problem samo u tome da ne možeš reč da imaš validnu stranicu? Ja ne vidim niti jednu lošu stranu nestandardnih atributa

class ili id atribut + javascript.

Nestandardni atributi nemaju “opravdanja” za koristenje posto sve sto se moze ostvariti pomocu njih, moze se ostvariti i pomocu standardnih atributa. Osim toga, koristenje nestandardnih atributa je u najbolju ruku sporije, a potencijalno moze biti sporije.

[quote=“ivan.skugor”]class ili id atribut + javascript.

Nestandardni atributi nemaju “opravdanja” za koristenje posto sve sto se moze ostvariti pomocu njih, moze se ostvariti i pomocu standardnih atributa. Osim toga, koristenje nestandardnih atributa je u najbolju ruku sporije, a potencijalno moze biti sporije.[/quote]
Što si htio reči?
Ne znam baš ko će i kako primjetiti da je sporije :smiley: baš bi želio tu mašinu vidjeti, id je već iskorišten, a tebi treba jedna varijabla za jedan element koja se mijenja, class ne možeš jer već taj element ima 3-4 klase, na kraju bi se u tome izgubio s javascriptem…

Pogrešan stav za jednog programera :S

Ne bi se složio, po tome onda foreach nikada ne bi bio izmišljen jer je sporiji od for loopa, a svaki objekt možeš iterirati kroz for, onda nikad ne bi bio smišljen niti jedan jezik osim assemblera, jer ono usporit će se, treba staviti na vagu brzinu, jednostavnost, funkcionalnost…
A meni trenutno ovi svi parametri vise više za nestandardne atribute, ta sporost koju ni na mašini od 100MHz i 32MB rama nećeš primjetiti je glupost…

Korištenje standarda je uvijek prednost.

Mislim da bi se sve moglo izvesti guranjem u standardne tagove, no mislim da se time kuha gulaš. ID nebi koristio za pohranu jer ga neki JS koriste za prepoznavanje tako da ostaje class i stavljanjem svega u class.
No ponekad i class se dinamički mjenja i uvijek bi trebalo paziti da izmjene ne diraju podatke.

I na kraju cijeli razvoj sučelja treba podrediti tome da unutar nekog standardnog atributa se nalaze podaci koji sučelje koristi, dok ovako nestandardni atribut koristi samo developer koji radi na sučelju.

Vidio sam primjer gdje se podaci stavljaju u assoc array i onda povezuju s elementima, no mislim da je komplicirano i ne uvijek primjenjivo da bi tako nešto postalo praksa.

stavljanje u assoc array bi tek bilo sporije nego kroz nestandardni atribut :wink:

[quote=“Kečko”]Što si htio reči?
Ne znam baš ko će i kako primjetiti da je sporije :smiley: baš bi želio tu mašinu vidjeti, id je već iskorišten, a tebi treba jedna varijabla za jedan element koja se mijenja, class ne možeš jer već taj element ima 3-4 klase, na kraju bi se u tome izgubio s javascriptem…[/quote]

Stvari mogu postati spore, ako se razmislja na takav nacin. Pogotovo jer danas ljudi surfaju i sa mobitelima (ja npr.).
Al glavna poanta tu je da ti i ostali koji koriste nestandardne atribute ne znaju problem rjesiti sa standardnim atributima (a da se jako jednostavno).
Element moze imati koliko god klasa. Kakve veze ima li ih 3-4 ili milijun ako znas kako dodati i maknuti klasu, a da ne diras sve ostale.

[quote=“ivan.skugor”]Stvari mogu postati spore, ako se razmislja na takav nacin. Pogotovo jer danas ljudi surfaju i sa mobitelima (ja npr.).
Al glavna poanta tu je da ti i ostali koji koriste nestandardne atribute ne znaju problem rjesiti sa standardnim atributima (a da se jako jednostavno).
Element moze imati koliko god klasa. Kakve veze ima li ih 3-4 ili milijun ako znas kako dodati i maknuti klasu, a da ne diras sve ostale.[/quote]

Znam ja to jako dobro :smiley: naveo sam ti ja tamo problem, pa reci da li bi išao to riješavati sa poljem u javascriptu, sa klasama (tu bi imao onda provjeru koja klasa je u pitanju i 6-7 različitih klasa samo za taj efekt, pa onda imaš i toliko ifova, uglavnom spetljan i nepotreban kod), isto sporije od js-a, ili jako jednostavno pukneš nestandardni atribut na kojeg se nitko ne buni i ništa se ne usporava :slight_smile: Di si uzeo tu ideju da će se sve usporit? Daj neki dokaz

Našao sam u YUI3 metodu koja dodjeljuje podatke html elementima (Node), a sve ostane čisto i uredno.

No problem je što na server strani se prije kreiranje stranice ne može zvati javascript (iako znam majstora koji je to pokušao učiniti i ostao neozljeđen:)).

Iako naravno ni to nije velik problem za rješiti, ali opet eto zahtjeva malo dodatnog rada i ono što me najviše smeta što atribut i njegova vrijednost nije vidljiva na elementu (ali što kad stvari takve moraju biti).

vidio sam par jquery templating enginea koji rade tako da se na html elemente dodaju posebni nestandardni atributi. Meni se cini da je to ok, zasto nebi to upotrebljavao?

i u DOJO se mogu naći nestandardni atributi.

I korištenjem nestandarnih atributa može se dobiti potpuno validna stranicu.

http://richui.blogspot.com/2005/02/custom-tags-namespaces-and-dtds.html

http://www.rpbourret.com/xml/NamespacesFAQ.htm#s7

Iako nevidim neku korist od toga, kad se sa JS-om sve može riješiti preko standardnih atributa.

Onaj primjer koji je Kečko naveo s tablicom se sasvim solidno da riješiti i sa

test, test i onda se parsa string step-n i to je to.

[quote=“CreatifCode”]I korištenjem nestandarnih atributa može se dobiti potpuno validna stranicu.

http://richui.blogspot.com/2005/02/custom-tags-namespaces-and-dtds.html

http://www.rpbourret.com/xml/NamespacesFAQ.htm#s7

Iako nevidim neku korist od toga, kad se sa JS-om sve može riješiti preko standardnih atributa.

Onaj primjer koji je Kečko naveo s tablicom se sasvim solidno da riješiti i sa

test, test i onda se parsa string step-n i to je to.[/quote] I onda moraš posebno za svaku razinu i svaki element provjeravati to je onda n*broj redova provjera, znači da višestruko povećavaš broj provjera, dok ovdje automatski znaš čim učitaš vrijednost ne standardnog atributa. Što ako imaš 100tine, tisuće razina?