Starší komentáře ke článku: JavaScript s jQuery - lehký úvod

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Jan Štefl

Datum vložení: 21.5.2007 9:35:21

Díky za článek.

Avatar

Autor komentáře: Maverick

Datum vložení: 21.5.2007 10:24:23

Dobrý den, zajímalo by mě, proč je v článku označeno používání Prototype za [i]diskutabilní praktiku[/i]. Prototype používám často a jeho využití mi vždy připadalo být jasnou výhodou...

Avatar

Autor komentáře: Mirek Nagovský

Datum vložení: 13.7.2007 17:46:12

No vidíte, teď jste se chytil. Sám jste na toto téma začal diskutovat a tedy jen potvrzujete, že Prototype JE diskutabilní :-)

Avatar

Autor komentáře: Honza

Datum vložení: 15.7.2008 10:24:22

Gratuluji k brilantnimu smyslu pro humor, pobavil jste mne i meho kolegu :-)

Avatar

Autor komentáře: Richard Šerý

Datum vložení: 21.5.2007 13:18:20

"Diskutabilní" píšu proto, že záleží, nakolik si člověk cení principu zapouzdření. Prototype tím, že modifikuje základní prototypy jako je Object a Array, princip zapouzdření porušuje - změny které dělá se projeví všude. Vzhledem k tomu že často dělám na projektech, na kterých už pracovali lidi přede mnou, je pro mě důležité dodržovat korektní zapouzdření. Zjednodušeně řečeno mi jde o to aby můj program neovlivnil žádný jiný program a ani cizí programy aby neovlivňovaly ten můj. Jinak totiž hrozí že po připojení nového podprogramu přestanou fungovat cizí kusy kódu které s novou funkcionalitou nemají nic společného.

Avatar

Autor komentáře: Maverick

Datum vložení: 21.5.2007 14:09:04

Děkuji za odpověď. V tomto bodě máte samozřejmě pravdu. I přesto myslím, že zapouzdření funkčnosti nemůže být příliš velký problém splnit, pokud by ji vývojář vyžadoval. Jde o několik zásahů do kódu Prototype. A jinak si myslím, že je to velmi zdařilý a použitelný kus kódu.

Avatar

Autor komentáře: Charlie

Datum vložení: 28.7.2007 0:11:11

Princip frameworku Prototype je právě porušení zapouzdření, nabourání základních objektů (Object, Array, ...) a usnadnění práce s nimi bez nutnosti volání "externích" funkcí. Po provedení vašich několika zásahů (a že by jich muselo být hodně) by z frameworku zůstal akorát tak úvodní copyright.

Avatar

Autor komentáře: s

Datum vložení: 22.5.2007 6:51:12

já mám možná hloupý dotaz... zajímalo by mne, jestli to půjde všem uživatelům na různých platformách, nebo je potřeba instalace nějakých plug-inů nebo něčeho podobného...?

Avatar

Autor komentáře: Richard Šerý

Datum vložení: 22.5.2007 9:56:22

V zásadě by to mělo fungovat bez potíží ve všech moderních browserech - IE6, FF 1.5, Safari 2, Opera 9 - viz http://docs.jquery.com/Browser_Compatibility Frameworky jako je jQuery obvykle "zahladí" naprostou většinu rozdílů mezi browsery, přesto je nutné to vždycky ve všech browserech otestovat, protože některé rozdíly už z principu podchytit nelze.

Avatar

Autor komentáře: Farin

Datum vložení: 22.5.2007 11:51:19

JQuery je predevsim neskutecne elegantni a usporne. "mnozinova" prace je schopna vyznamne zkratit kod (napr tim odpada test existence nejekeho elementu, v jquery se operace zavola na prazdne mnozine a nic se nedeje) Je to trochu jiny styl psani, ale clovek mu prijde rychle na chut. Cca pred 1/2 rokem jsem presli z Prototypu prave na JQuery a nemuzeme si ho vynachvalit.

Avatar

Autor komentáře: Vojta Grec

Datum vložení: 1.6.2007 0:42:57

Nechci dělat chytrého, ale možná by ještě stálo za to zmínit, že JQuery si poradí s anonymními funkcemi i přímo, což může dost podstatně zkrátit zápis (pokud tedy jde o "jednorázovou" funkci). Třeba: $("p").click(function(){ alert($(this).text()); }); a v tomto případě by asi šlo i $("p").click( alert($(this).text()) ); místo var callback = function () { alert( jQuery(this).text() ); }; jQuery("p").bind( "click", callback); Obecně JQuery zvládá hodně stažených tvarů, což je na jednu stranu elegantní, ale na druhou může být nepřehledné (ale na Perlové one-linery to nemá:-)). Jinak JQuery vřele doporučuji, podle mne je to celkem optimální (lehká, ale přitom schopná a cross-browser kompatibilní) knihovna. IMHO je daleko svižnější než Prototype a script.aculo.us.

Avatar

Autor komentáře: Petr Kobalíček

Datum vložení: 4.8.2008 3:53:20

$("p").click( alert($(this).text()) ); by určitě nešlo, alert se spustí ještě před zavoláním metody click.

Avatar

Autor komentáře: Richard Šerý

Datum vložení: 1.6.2007 9:31:34

Práce s anonymními funkcemi je obecnou vlastností JS, to funguje všude. Přímý zápis anonymní funkce jako argumentu je ale méně přehledný, takže jsem ho pro článek, který má ukázat jQuery, považoval za nevhodný. Ostatně s tím je dobré šetřit i v běžném kódu, málokdy je to přehlednější a dost často to pak kódu ubere na flexibilitě. Když už jsme ale u funkcionálního programování, dost se mi osvědčují "víceúčelové funkce" které lze volat jak přímo, tak i jako callback třeba při obsluze eventu. Bohužel tuhle techniku jQuery moc nepodporuje (má v tomto ohledu špatně nastavené argumenty předávané callback funkcím).

Avatar

Autor komentáře: Vebloud

Datum vložení: 1.6.2007 14:41:10

Nevím jestli jsem blázen, ale 55kB mi připadá jako docela dost na to, aby to byl "jenom" framework.

Avatar

Autor komentáře: Richard Šerý

Datum vložení: 1.6.2007 14:58:27

V produkci se obvykle používá ta 20kB kompresovaná varianta. Ale i 55kB by u tak silného frameworku nebyl problém, zvlášť když to můžeme zazipovat a navíc se to cachuje. Podle mě soubor pod 100kB je v pohodě, kolikrát má 50kB i pitomé logo. Ale to si musí každý rozmyslet podle konkrétního projektu jestli to pro něj nebude kanón na vrabce.

Avatar

Autor komentáře: Charlie

Datum vložení: 28.7.2007 0:20:40

Koukněte se na Yahoo! UI Library, je to vysokoúrovňový JS framework, hodně známý a hojně používaný. Aby toho uměl tolik co jQuery, potřebuje načíst 300 kB kódu. A i tehdy jQuery vyhraje díky inteligentnímu DOM "hledání" elementů na stránce, které v YUI nenajdete.

Avatar

Autor komentáře: Honza

Datum vložení: 10.7.2007 23:19:20

Je to celkem pěkné, ale ty začátky s tím, než člověk zjistí, jak má co psát. Nakonec stejně přijde na to, že ty efekty stejně nefungují jak mají a v pomalym IE je to setsakrapomalý. btw moc pěkná jsou dema pluginů (to je pořád samý wow), ale s Operou to sem tam maličko ujede a v IE se web pluginu Interface načítá půl hodiny (mezitim IE neodpovídá..) Škoda, to vybírání pomocí selektorů je moc pěkná věc...

Avatar

Autor komentáře: Dundee

Datum vložení: 15.8.2007 9:29:09

Osobne mam zkusenost, ze komprimovana verze jQuery vyrazne vice zatezuje procesor. Nabihani stranek pak muze trvat i nekolik sekund. (a to mam dual-core 2.66GHz).

Avatar

Autor komentáře: Richard Šerý

Datum vložení: 15.8.2007 9:47:02

To je zajímavý potřeh, je to možné protože komprimovaná verze používá eval. Osobně to dělám jinak - nejdříve se všechny javascripty spojí do jednoho souboru a na klienta pak jdou zazipované. To mi připadá optimální jak na velikost tak i na počet request/responsů, cachování atd.

Avatar

Autor komentáře: Tom@sQo

Datum vložení: 31.8.2007 10:26:21

dundee: ide o to, ze komprimovane verzie by sa nemali pouzivat... ked mam normalnu verziu, tak sa to raz userovi cele svizne natiahne(nezatazuje az tak procesor), a potom sa mu to cachuje(pre komprimovanu verziu to neplati!!!), cize uz je to vkuse rychle, az na prve nacitanie. to je dovod, preco sa vacsinou pouziva "normalna" verzia(a podla mna by sa nemala pouzivat vacsinou, ale stale) ;) yo, a este k tomu jQuery vs. prototype dodavam http://groups.google.com/group/rubyonrails-spinoffs/browse_thread/thread/60ae484d7b7b03f1 ale aj tak tomu trosku oponujem, lebo som sa kedysi naucil riadne prototype a potom som skusal ine frameworky, ale nevedel som si zvyknut ;(

Avatar

Autor komentáře: Tom@sQo

Datum vložení: 31.8.2007 12:56:36

nedalo mi neporozhliadnut sa po "nadstavbe" na jQuery(Interface), nakolko som ho v zivote nepouzival a ako pozeram je velmi kvalitny, o dost kvalitnejsi, ako script.aculo.us pre prototype. asi predsa len budem migrovat ;) ale aj tak mam otazku, totiz na http://interface.eyecon.ro/download si mozem stiahnut tie komponenty, ktore chcem, ale stale su KOMPRIMOVANE ;( neda sa ich nejak stiahnut neskomprimovane? ked ste niekto na jQuery fore zaregistrovani, tak mu to pls napiste(mne sa koli tomu nechce registrovat). diky :)

Avatar

Autor komentáře: Michal

Datum vložení: 30.5.2008 9:01:11

No mam take informacie, ze interface sa uz nepouziva a nie je podporovany. skuste http://ui.jquery.com

Avatar

Autor komentáře: zero0x

Datum vložení: 31.12.2007 7:59:58

tak to si naozaj nemyslim. jQuery ma eventy zvladnute perfektne. Treba si na to iba zvyknut, zapametat si, ze u event handlera je this stale element, takze sa neda normalne pouzit. Ale inak ma jQuery skvely system eventov, hlavne co sa tyka vlastnych. Ja som s tym systemom mal problemy, to ma asi kazdy, ked zacina, ale naozaj sa na to da zvyknut a potom to budes povazovat za uzasne ;)

Avatar

Autor komentáře: pavel

Datum vložení: 13.9.2008 15:45:09

ano, ohledne porusovani funkcionalit jinych programu je pravda.. pracoval jsem s java based portalem Liferay, plne vyuzivajiciho jquery, predevsim co se administrace tyce.. zkousel sem si tam pridat jednoduchou LIGHTBOX galerii. ale ejhle, pouzivala prototype a po case jsme zjisitili ze nam jedna funkce (hide() na zobrazovani a schovani galerie) koliduje s funcki pro zobrazeni stromu stranek v administraci (nedovolila ho zobrazit).. dlouho sem si trhal vlasy nez jsem prolezl tech 4500 radku kodu a zjistil cim to je :D

Zpět na článek | Úvodní stránka Interval.cz