Szerver vs kliens oldal; mit hova?
Az lenne a kérdésem, hogy ki mit helyez át szerver oldalról a kliensre és miért? Mik a tapasztalatok? Bennem most teljes a dilemma. Egyrészről van egy nyomás, hogy minél felhasználóbarátabbak legyenek a formok, amit pl extjs-sel szépen meg is lehetne oldani, de van-e értelme JS-ből generálni a form-ot is? És szerver oldalról csak egy XML-t vagy JSON-t átadni, hogy hogyan is nézzen ki a form.
A másik oldalról meg ott van az, hogy most Symfony szépen legenerálja a form-ot, csak ott nem lesz azonnali a validálás, és nem lehet oldal újratöltés nélkül behozni egy klikkre egy formot. És ott van az is, hogy a felhasználó kikapcsolja a JS-t. Szóval? Ki, hol és hogyan csinálja?
■ A másik oldalról meg ott van az, hogy most Symfony szépen legenerálja a form-ot, csak ott nem lesz azonnali a validálás, és nem lehet oldal újratöltés nélkül behozni egy klikkre egy formot. És ott van az is, hogy a felhasználó kikapcsolja a JS-t. Szóval? Ki, hol és hogyan csinálja?
Form validáció
A kielsoldali ellenőrzés nagyrésze (beleértve a kötelező kitöltést) meoldható regex-szel, ami szerveroldalon éppúgy használható (feltéve, persze hogy a kifejezés a böngésző és a szerver implementációja számára is érthető). Készíthetsz egy közös "kottát" a formodhoz, amit megért a szerver és a kliens is, ezt json-ben elküldöd a formmal együtt.
Vannak logikai ellenőrzések, amik több mező között valósulnak meg. Pl: a kezdeti dátum mindig kisebb kell legyen a befejezési dátumnál. Ekkor vagy készítesz magadnak egy mező-alapú réteget, ami lekezeli a mezők tipusait és egyszerű relációkat (pl. kisebb), ekkor a "kottád" részévé teheted ezeket is. Vagy (ami egyszerübb) megírod az ellenőrzést JS-ben a kliensnek, és PHP-ban a szervernek. Ekkor ott a lehetőség, hogy különbözni fog a két feltétel, vagy elfelejted az egyiket módosítani.
A JS-generált form megengedhető egy olyan oldalon, amihez a JS kritikus feltétel (pl egy webalkalmazás), de egy álagos odalon, pl webáruház, szigorúan tilos :)
Szóval nem könnyű kérdés. Szerintem az újratöltés belefér. Ha jól írtad meg az oldal többi részét, a felhasználó nem fogja tudni megkülönböztetni az újratöltést egy AJAX kéréstől (a mai böngészők megfelelően gyors válasz esetén villanásmentes újrarajzolásra is képesek).
Ez egyértelmű
Nem ez volt...
Symfony és ajax
transzparens validátorok
Csodálkozom, hogy a symfony nem ezzel jött ki (elvileg ugye az sfFrom volt az egyik újdonság), ezt már pl. QuickForm is tudja ősidők óta.
Egy példa: