Autor | Zpráva | ||
---|---|---|---|
joe Profil |
#1 · Zasláno: 24. 1. 2012, 06:20:07
Ahoj, celkem by mě zajímalo, jakou strukturu používáte pro externí soubor v JavaScriptu, jde mi o hlavní soubor se skripty, (ne JavaScript knihoven, který máte určitě nějakým způsobem oddělený), kde musíte řešit situace "tohle proveď na jedné stránce a tohle na jiné". Struktura pak může být podobná této:
$(document).ready(function() { var $el = $("#myElement"); if ($el.length > 0) { // zde proveď kód pracující s tímto elementem (ten bude například na úvodní stránce) } var $el2 = $("#myElement2"); if ($el2.length > 0) { // zde proveď kód pro jiný element, ten se bude například nacházet na stránce s kontakty } }); Při rozsáhlém webu, nejen že se kód hojně rozrůstá, ale stává se rychle nepřehledným a zorientovat se v kódu, který má třeba 2000 řádků a k tomu není dobře komentován, není zrovna moc reálné a zabere nějaký čas. Zajímal by mě tedy váš postup, spíše na "větších" stránkách. Mnou uvedený způsob má celkem závažný problém, v případě, že se web spravuje přes CMS systém, kde si uživatel může napsat HTML jaké chce, může se tak lehce stát, že se kód pro JavaScript rozbije tím, když vytvoří například nějaký element s ID, se kterým já počítám, že je jedinečný na celém webu. Jako další možnost, kterou bych asi nejvíce preferoval by bylo volání JavaScriptu přímo v HTML - za požadovaným elementem. Chci validaci daného formuláře? Za tag </form> napíšu <script>validateForm("#myForm");</script>
Díky za vaše názory, postupy a všechny možné rady, jak udělat JavaScript hezčím. |
||
Str4wberry Profil |
#2 · Zasláno: 24. 1. 2012, 09:58:19
Docela se mi osvědčil postup používat atribut
id jen pro JavaScript. Šance na vytvoření duplicitního elementu se tím výrazně snižuje a z HTML kódu je jasně patrné s čím JavaScript manipuluje.
|
||
Chamurappi Profil |
#3 · Zasláno: 24. 1. 2012, 11:28:15
Reaguji na joa:
„volání JavaScriptu přímo v HTML - za požadovaným elementem“ Tuto možnost používám. Nejen proto, aby se v externím skriptu dalo vyznat, ale i proto, že při volání často potřebuji parametry, které v okamžiku úpravy JS neznám — buď z důvodu, že je generuje dynamicky server (typicky serverový čas), nebo z důvodu, že je chce později upravovat někdo, kdo není já (typicky znění hlášek při kontrole formuláře). „v případě, že se web spravuje přes CMS systém, kde si uživatel může napsat HTML jaké chce“ Tohoto rizika jsem se na mých větších stránkách zbavil tím, že jsem vyrobil vlastní WYSIWYG, který nedovoluje vložit nic, s čím by zbytek kódu nepočítal. Atributy id umožňuji použít i na kotvy, ale dávám jim prefix.
„zorientovat se v kódu, který má třeba 2000 řádků“ Opravdu dlouhé skripty si většinou rozděluji do více malých souborů. Ve vlastních projektech se mi osvědčil postup, kdy mám hlavní skript rozdělený na dvě větve, schématicky: if(debug) { načti("jeden.js"); načti("druhý.js"); načti("třetí.js"); } else { // strojově poskládaná zmačkaná verze výše načítaných JS } |
||
Časová prodleva: 12 let
|
0