Autor | Zpráva | ||
---|---|---|---|
__construct Profil |
#1 · Zasláno: 30. 5. 2010, 20:53:17 · Upravil/a: __construct
Potrebujem vylepšiť nasledujúci skript. Všetky tie prvky(#id_zakaznik, atď) sú posebeidúce elementy formulára (text inputy a textarea). Nedá sa to spracovať cyklom ?
Dík za rady .. $.getJSON(adresa,function(data){ $('#id_zakaznik').val(data.id_zakaznik); $('#meno').val(data.zakaznik); $('#ic').val(data.ic); $('#adresa').val(data.adresa); $('#email').val(data.mail); $('#splatnost').val(data.splatnost); $('#telefon').val(data.telefon); }); |
||
ah01 Profil |
#2 · Zasláno: 30. 5. 2010, 21:06:17
$.getJSON(adresa, function (data) { $.each(data, function (key, value) { $("#" + key).val(value); }); }); |
||
__construct Profil |
#3 · Zasláno: 30. 5. 2010, 21:26:17 · Upravil/a: __construct
Díky, funguje to (po malej zmene IDčiek) ale povedal by som, že je to ešte náročnejšie ako ten pôvodný skript ..
$.getJSON(adresa, function (data) { $.each(data, function (key, value) { $("#" + key).val(value); // chcem sa vyhnúť volaniu $ na každý ten element .. }); }); //edit: myslel som niečo takéto (toto ale nefunguje ..) var formular = document.getElementById('form-zakaznik').elements; //#form-zakaznik je ID formulára for (i = 0; i < formular.length; i++) { formular[i].value = data[i]; } |
||
ah01 Profil |
#4 · Zasláno: 30. 5. 2010, 21:58:56
__construct:
„chcem sa vyhnúť volaniu $ na každý ten element“ Proč? Myslíš že tvůj skript bude pomalý, nebo máš nějaký smysluplný důvod? |
||
__construct Profil |
#5 · Zasláno: 30. 5. 2010, 22:03:55 · Upravil/a: __construct
ah01:
„Myslíš že tvůj skript bude pomalý“ áno .. $ je dosť náročná funkcia (bolo to už niekoľkokrát spomínané) a nechcem ju zbytočne veľa krát volať .. Už to mám takto :-) var formular = document.getElementById('form-zakaznik').elements; for (i = 0; i < formular.length; i++) { formular[i].value = data[formular[i].id]; } |
||
ah01 Profil |
#6 · Zasláno: 30. 5. 2010, 22:51:11
__construct:
„$ je dosť náročná funkcia“ Ona je to dost mocná funkce a je optimalizovaná tak, aby pracovala co nejlépe napříč všemi možnými prohlížeči. Samozřejmě, že pokud použiješ čistý JS kód, budeš to mít o trošičku rychlejší. Je třeba se ale trochu zamyslet. Ty posíláš nějaký požadavek na server, to trvá jednotky sekund. Odpověď pak zpracováváš, což trvá jednotky milisekund, tedy o 3 řády méně! Právě jsi strávil patrně několik hodin zrychlením svého skriptu řekněme o 1 ms, tedy asi o 1 ‰ – stálo ti to za tu námahu a komplikace? |
||
Nox Profil |
#7 · Zasláno: 30. 5. 2010, 22:55:10
ah01:
Tady to očividně cenu nemá, ale optimalizovat třeba funkci, která k elementům přistupuje velmi často a pouští se při různých příležitostech už cenu může mít, tam už ani nejde porovnávat se sekundami, jelikož nejde ani tak o čekání na načtení jako odezvu aplikace ... j, vím, bacha na premature/micro/nepotřebnou optimalizaci, ale někdy se to prostě může hodit |
||
Časová prodleva: 14 let
|
0