Nahradit NetteQ za jQuery?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Grudl
Nette Core | 8227
+
0
-

S myšlenkou pohánět Debugger Bar pomocí jQuery si pohrávám od jeho vzniku. Knihovna NetteQ vznikla proto, že mi jQuery připadalo příliš velké pro výpis na konci souboru (NetteQ je cca 11× menší), nezdálo se mi košér ho linkovat z CDN a obával jsem se případných kolizí.

Aniž bych to čekal, tvorba rozšíření pro Debugger Bar se stala velmi populární a jako klíčové se mi zdá nabídnout standardní API v podobě jQuery. Takže NetteQ bych dal pryč, jQuery tahal z CDN (nastavitelné přes nějakou proměnnou). Programovat NetteQ byla výborná a příjemná zkušenost, ale asi je čas mu dát sbohem, ne?

Taktéž netteForms.js bych hodil někam do doplňků a dal do distibuce novou verzi postavenou na jQuery, využívající třeba live bindování (AJAX) a live validování (něco hezkého místo alert).

Nějaké postřehy?

Honza Kuchař
Člen | 1662
+
0
-

Já jsem pro. NetteQ je opravdu exotika, i když moc pěkná.

Patrik Votoček
Člen | 2221
+
0
-

Tenhle krok se mě určitě líbí! A jsem 1000× pro!

Ad netteForms.js moc to s tím nesouvisí ale nemohl by v data-nette-rules být validní JSON (tj. 'foo': 'bar'). Kdysi jsem na to narazil (už nevím proč zkusím pohledat).

grey
Člen | 94
+
0
-

To by bylo super :)

Majkl578
Moderator | 1364
+
0
-

Jsem pro. :)

Vyki
Člen | 388
+
0
-

Stejně asi většina z nás jQuery ve svých projektech používá tak proč ne.

Honza Marek
Člen | 1664
+
0
-

Pro návrh.

arron
Člen | 464
+
0
-

Ja jsem taky rozhodne pro:-) Akorat bude potreba zajistit, aby se v pripade formularu nenahravalo jQuery pokud uz v projektu bude nahrane (v debugu to tolik nevadi). A mozna by mohl nastat problem s verzemi, protoze nekdo treba bude mit starou verzi a mohl by mit problem upgradovat (ackoliv si nejsem jisty jak je to presne s kompatibilitou).

k23
Člen | 13
+
0
-

Super!

iguana007
Člen | 970
+
0
-

Jsem taky určitě PRO!

Lopo
Člen | 277
+
0
-

arron napsal(a):

Ja jsem taky rozhodne pro:-) Akorat bude potreba zajistit, aby se v pripade formularu nenahravalo jQuery pokud uz v projektu bude nahrane (v debugu to tolik nevadi). A mozna by mohl nastat problem s verzemi, protoze nekdo treba bude mit starou verzi a mohl by mit problem upgradovat (ackoliv si nejsem jisty jak je to presne s kompatibilitou).

osobne mam jquery aj jquery-ui rovno v hlavicke … kedze napr aj flash spravicky mam animovanie pomocou kusu kodu z datagrid-u …

co sa tyka ajax skriptov formularov tak v BailIff-e to mam riesene skriptami povodne od Hosiplan-a linkovanymi cez head.js takze viacnasobne nahravanie by nemalo nastavat …

celkovo budem rad ak sa aktualne nette skripty prerobia do jQuery podoby

mozno sa najdu ludia ktori by ich vedeli portnut potom aj do inych JS frameworkov

nebolo by odveci mat moznost nejakym parametrom nette povedat ktoru verziu ma pouzivat – nejaky globalny param urcujuci pouzitie jQuery / MooTools / Prototype / … predsa len pocitam ze sa najdu ludia ktori pouzivaju nejaky iny jsfw nez jQuery …

Ondřej Mirtes
Člen | 1536
+
0
-

Já bych trochu brzdil. To jQuery bude includované jen v momentě, kdy bude zobrazený debugbar? Nebo si ho každý bude muset přidat do layoutu, jinak netteForms.js a debug bar nebudou fungovat?

Co když někdo používá jiný javascriptový framework a zároveň chce použít netteForms.js?

nanuqcz
Člen | 822
+
0
-

Mě už se takhle jako běžnému programátorovi moc nelíbí, že si musím do stránek linkovat nějaký netteForms.js. Nejlepší to promě bylo v Nette 0.9, kde si Nette potřebné javascripty (nějak) natahalo samo.

Pokud by to tak šlo vymyslet i u jQuery (Nette by si nějakou verzi jQuery tahalo samo někde z hlubin složky Nette, zároveň by programátorovi nedělalo problém si v <head> natahat, třeba starší, verzi jQuery), pak by to byl podle mě velký přínos. Toť můj názor. Otázka je, jestli to tak jde vůbec udělat.

Editoval xxxObiWan (16. 6. 2011 13:07)

Honza Marek
Člen | 1664
+
0
-

jQuery se dá natáhnout krásně líně až v případě potřeby.

if (!jQuery) {
	var jQueryScript = document.createElement('script');
	jQueryScript.setAttribute('src', 'http://gugl.com/jquery.js');
	document.getElementsByTagName('head')[0].appendChild(jQueryScript);
	jQuery.noConflict();
}
David Grudl
Nette Core | 8227
+
0
-

Asi by to fungovalo takto: pokud je jQuery k dispozici (možná s ověřením nějaké major verze), tak se použije, jinak se stáhne ze CDN a umístí mimo globální prostor. To už by dnes mělo jQuery umět.

nanuqcz
Člen | 822
+
0
-

CDN – pokud budu vyvíjet intranet aplikaci (pro PC bez přístupu k internetu a tím pádem i k CDN), tak mi Nette javascripty nebudou defaultně fungovat.

Opravdu je něco špatného mít uložené jQuery defaultně přímo ve složce Nette, když už se na něm stane Nette závislé?

westrem
Člen | 398
+
0
-

Presun k jQuery je urcite dobry krok, ale rovnako si myslim, ze trosku pribrzdit a zamysliet sa nie je zly napad.

Podla mna treba vyriesit nasledovne otazky // problemy:

  1. nevnucovat uzivatelom Nette CDN, ale umoznit im appendovat lokalne verzie
  2. v pripade CDN dovolit jednoduchym sposobom urcit, ktora verzia sa ma linkovat
  3. nelinkovat jQuery viackrat – tzn. ak uz je uvedena v layoute alebo nejakom snippete nelinkovat ju aj pre potreby debug baru
  4. vyriesit kolizie s inymi FW ako napr. Scriptalicious, Prototype apod.
22
Člen | 1478
+
0
-

@westrem:

  1. Nette má nějaké CDN?
  2. Nette by němělo nijak uživatele omezovat v použití verze jQuery, čili verzi si určí každý sám příslušným linkem na CDN, pokud není připojeni k internetu, stačil by nějaký <noscript>, který na tuto skutečnost upozorní programátora, že si má knihovnu stáhnout manuálně.
  3. jQuery se ukladá do cache – teoreticky je to tedy jedno.
  4. jQuery má podporu pro kolize s jinými knihovnami

Editoval 22 (16. 6. 2011 13:59)

Matúš Matula
Člen | 257
+
0
-

Este doplnim, ze problem pre intranetove app nie je. Da sa specifikovat local fallback v pripade nedostupnosti CDN

{* http://blogs.sitepoint.com/whats-new-in-jquery-16/ *}
{* load jQuery from CDN or fallback to local copy *}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
<script>window.jQuery || document.write("<script src='{!$basePath}/js/jquery-1.6.1.min.js'>\x3C/script>")</script>
juzna.cz
Člen | 248
+
0
-

Mela by byt moznost velice jednoduse zmenit CDN za lokalni url, je dost firem ktere se „boji“ tahat cizi javascript do svych stranek. A zaroven i dat pozor na ty ostatni js frameworky (jQuery.noConflict), u nas se pouziva MooTools, tak potrebuji aby debug panel fungoval i s tim.

Honza Marek
Člen | 1664
+
0
-

Když si to nějak vložíte sami, tak už to Nette nebude natahovat. Co je na tom k nepochopení?

mkoubik
Člen | 728
+
0
-

U toho CDN nebude intranet tak častej problém, mnhohem běžnější je, že něco programuju offline (na chalupě, ve vlaku, u rybníka atd.)

Honza Kuchař
Člen | 1662
+
0
-

Bylo by určitě moc fajn, kdyby to jQuery existovalo jen v kontextu debugbaru. (i za cenu toho, že bude načítáno 2x)

Tedy nějak takto:

(function(){
	// pokud není jQuery k dispozici
	// umístit se zdrojáky jQuery - které bude tím pádem čistě lokální

	// De bude kód debugbaru
})();

// zde může být cokoliv dalšího. Toto už nebude ovlivněno debugbarem...
David Grudl
Nette Core | 8227
+
0
-

Tak ještě jednou: Asi by to fungovalo takto: pokud je jQuery k dispozici (možná s ověřením nějaké major verze), tak se použije, jinak se stáhne ze CDN a umístí mimo globální prostor. To už by dnes mělo jQuery umět.

uestla
Backer | 799
+
0
-

Co je to jQuery? ;-)

Postřeh žádný, jsem pro.

Pavel Kouřil
Člen | 128
+
0
-

Jsem pro. :)

duke
Člen | 650
+
0
-

Jsem rovněž pro. Už proto, že by to nejspíš řešilo tento problém.

jtousek
Člen | 951
+
0
-

Rozhodně pro, jenom je důležité ponechat volbu konkrétní verze a v rámci možností zachovat kompatibilitu s různými (hlavně novými) verzemi jQuery.

joe
Člen | 313
+
0
-

viz #12, děláte, jakoby existovala jen funkce jQuery a nic víc. Ne každý jQuery používá, tak proč ho nutit třeba kvůli validacím formuláře? Kdo chce, ten si ten skript na validování může upravit s pomocí jQuery a chyby ve formuláři zobrazit přesně tak, jak potřebuje. Není třeba, aby každý web postavený na Nette měl stejný způsob zobrazení oznámení chyb, že ne? :-)

A debugbar na jQuery, ten nebudu moci používat když nebudu připojený k internetu?

Felix
Nette Core | 1245
+
0
-

Ja jsem take pro jQuery.

norbe
Backer | 405
+
0
-

joe: Podle toho co psal David stačí když si jQuery do stránky vložíš sám…

radas
Člen | 225
+
0
-

jQuery +1