Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    válasz biker #3010 üzenetére

    Karma igen jól és tömören összefoglalta a lényeget, ami miatt finoman szólva nehezen elfogadható ez a megoldás. :P
    De a kód több sebből is vérzik, ezt mindjárt.

    Egyébként a PHP-kód vonatkozó részénél, amikor macskakaparásos idézőjelet kell használnod egy stringben, szerintem nyugodtan kihasználhatnád, hogy a stringeket aposztróffal is írhatod, és úgy nincs változó-behelyettesítés sem, így nem kell escape-elni az idézőjelet sem, tehát:
    $termek_jq.="\"".$query_tomb['termek_ean']."\" : \"".$query_tomb['termek_nev'].": ".$query_tomb['termek_ar']."Ft / db \" , ";
    HELYETT lehetne ez is:
    $termek_jq.= '"'. $query_tomb['termek_ean'] .'" : "'. $query_tomb['termek_nev']. ': '. $query_tomb['termek_ar']. 'Ft/db " , ';
    Sztem jobban néz ki. (Például ha HTML-kódot kell neadjisten generálni, annál is az attribútumokat ugye idézőjellel szokás írni, ott is elkerülhető az állandó escape-elgetés így.)
    Na de a kód tartalma már annál kevésbé néz ki jól. Erről megint mindjárt. :D

    Amúgy én PHP-kódnál és lehetőleg más nyelvekben is inkább kerülni szoktam a stringben "elrejtett" változóneveket (amik behelyettesítődnek), ezzel persze biztos vannak, akik nem értenek egyet, de engem kifejezetten zavar, ha nem látszik kapásból a kódból, hogy oda bizony egy "kívülről hozzácsapott" változó értéke kerül - még akkor is, ha az IDE highlightolja az adott stringben a megfelelő részt. Nem beszélve arról, hogy tömbindexeknél vagy objektumok attribútum/metódushívás-eléréseinél a stringben így még bűvészkedni is kell, hogy az valóban behelyettesítődjön. Bár bevallom, pl. shell scripteknél sokszor kivételt teszek.

    Na, szóval a kód érdemi részére rátérve:
    - Eleve rossz, hogy PHP-vel generálsz komplett JS-kódot, mert ott biztos, hogy valami koncepcionális hiba van, és lehetne sokkal általánosabban.
    - Ha már ilyen megoldást választottál, és generálsz mindent, miért drótozod be az elemek számát a ciklusban? Lásd $i<16 --> miért pont 16? Miért nem egy változó van ott? Ha egyébként JS-kódbeli ciklusban szerepelne, az is rossz lenne, mert itt egy ismeretlen nagyságú valaminek a kalkulált hossza kellene, hogy szerepeljen, nem egy konkrét, bedrótozott szám. Ha valami be van drótozva, akkor ott gondolkodni kell, hogy miért is van az ott bedrótozva. :D Szóval most igazából elkövetted pont azt a hibát, amiről a korábbiakban beszélgettünk. :D
    - Minden egyes termékazonosítóhoz legenerálsz egy-egy külön anonim event handlert. Minek? Meg lehetne oldani az egészet class-szal (class-okkal), és mindegyikhez egy darab általános event handler tartozhatna. A kódod semmi olyat nem tartalmaz, amit ne lehetne egy ilyen eseménykezelővel megoldani.
    Meg amúgy a kimeneti, legenerált JS-kódod tele lesz var value1, var value2, ... var value15 jellegű változókkal, ami gondolom nem kell mondani, hogy igen csúf.
    (Amúgy még így pluszban nem tudom, mennyire jó ötlet, hogy mindig hozzáfűzögeted a #bufe_uzenet elem tartalmához az aktuálisan becsippantott kódot. Érdekel valakit az előző akárhány becsippantott elem? Mert ha igen, akkor is talán mehetne egy kinyitható, logolós részbe, mert így ránézésre zavaró lehet, hogy nem egyértelmű, az adott pillanatban mit csippantott be valaki.)

    Szóval a kérdésre válaszolva ja, elég gány, bocsi. :D

    (#3003) Karma :
    "Egyvalamivel egészíteném ki. A pluginba szervezésnek lenne még egy kézzel fogható előnye is: ebben a formában csak egy slider lehet az oldalon, egy helyes megoldással meg akármennyi, függetlenül a másiktól."
    Jaja, egyetértek. De igazából ez benne volt az előzőben, legalábbis erre akartam utalni azzal a résszel, hogy "mi van, ha te valamiért több slidert is el akarsz helyezni az oldalon, és az egyikre más opciókat akarsz érvényessé tenni? Erre nem válasz, hogy de úgyse akarok ilyet." :) Meg hogy miért is gáz, hogy a selectorok is be vannak drótozva. Persze úgy még egyértelműbb, ahogy Te írtad.

Új hozzászólás Aktív témák