Mi az ami még rábízható a PHP+Ajax párosra?
Sziasztok!
Érdekes kérdéssel szembesültem a minap. Van egy megrendelőm, aki egy online szerencsejáték-alkalmazás elkészítésével bízott meg. Ez eddig még biztos nem ritka :) Ami viszont érdekesebb, hogy az egészet Ajax-szal álmodta meg.
Számomra furcsa, mert azért ezek már mintegy "enterprise-kritikusabb" területek szoktak lenni, az Ajax pedig azért még elég ingatag lábakon áll.
Mi a határ, ami még elmehet a PHP+Ajax kombóval? Ezt az alkalmazást Ajax-szal megvalósítani az nagyon szuicid dolog? El merjem ezt így vállalni, vagy próbáljam rábeszélni a megrendelőt valami Java applet / Flash típusú dologra, amit szívem szerint ilyen esetben tennék?
Köszi.
■ Érdekes kérdéssel szembesültem a minap. Van egy megrendelőm, aki egy online szerencsejáték-alkalmazás elkészítésével bízott meg. Ez eddig még biztos nem ritka :) Ami viszont érdekesebb, hogy az egészet Ajax-szal álmodta meg.
Számomra furcsa, mert azért ezek már mintegy "enterprise-kritikusabb" területek szoktak lenni, az Ajax pedig azért még elég ingatag lábakon áll.
Mi a határ, ami még elmehet a PHP+Ajax kombóval? Ezt az alkalmazást Ajax-szal megvalósítani az nagyon szuicid dolog? El merjem ezt így vállalni, vagy próbáljam rábeszélni a megrendelőt valami Java applet / Flash típusú dologra, amit szívem szerint ilyen esetben tennék?
Köszi.
Mi az alapvető félelmed?
Mi az alapvető félelmed? Amióta én megismertem az AJAX-ot, amit csak lehet és reális, azzal oldok meg!
Nem vagyok profi a témában, de ha minden igaz az AJAX is a HTTP protokollt használja. Akkor meg mi lenne a hatalmas különbség az között, hogy egy hivatkozásra kattintva mész a szerverre adatért, vagy rábízod AJAX-ra?
Én a Flash+PHP-t még soha sem próbáltam, de ha megnézed ezt a minntát megdöbbentő hasonlóságokat láthatsz Flash+PHP meg AJAX között!
Ha nem így van, helyesbítést kérek, mert ez a téma engem is nagyon érdekel! :)
s_volenszki
Szuicid-e?
Mennyit "bír el" az AJAX architektúra? Bármennyit. Lásd a felfutóban levő webes desktopokat(pl. eyeOS). A kérdés inkább az, hogy
1) Elég ügyes és tapasztalt vagy-e a feladatokat JavaScript-tel megoldani?
2) Elég türelmes vagy-e?
Egy ilyen oldalt szerintem könnyebb és gyorsabb Flash-ben megvalósítani, mivel jobb adottságai vannak ilyen tekintetben. Ezt nehéz elvitatni. Ellenben vannak ma már olyan megoldások, amivel JavaScript-AJAX alapokon lehet bonyolult dolgokat csinálni gyorsan és egyszerűen. Például Google Web Toolkit, persze csak ha Java/J2EE platformban gondolkodol. De megfelelő kiegészítésekkel szerintem szép eredményt lehet elérni például ExtJS segítségével is. Persze az én álmom, az SVG + JavaScript lenne az ultimate megoldás :) Kár hogy alig támogatott...
Tehát ha Flash-ben is megéri neked a munka, akkor javasold. De meg lehet ezt csinálni JavaScript-tel is ha értesz hozzá.
Nem az AJAX, hanem a DOM ami miatt aggódnék
Ami a szívás forrása lehet az a DOM manipuláció, ami már komolyabb feladatokat is adhat. Itt (tapasztalataim szerint) kifulladnak a keretrendszerek (pl eseménykezelés). És ha belefutsz egy hibába, amire nincs workaround beleépítve a választott keretrendszerbe, a legegyszerűbbnek tűnő feladat is napokat emészthet fel (talán heteket is, ha rájössz, hogy egy IE bug miatt az eddigi elképzelésedet újra kell gondolni).
Szóval nézd végig a specifikációt, és ha mindent pontosan tudsz, hogyan fogod megcsinálni, nyugodtan álj neki az AJAXnak. Viszont ha még nem volt ilyen horderejű munkád JS-ben, ez az a terület, ahol a legnagyobbatt lehet szívni.
Bármi, amit közszemléle mersz tenni
Védelem
szerintem mehet
Nyilván te tudod, hogy fejlesztési időbe megéri-e neked, hogy ajaxozol, ahelyett, hogy a bevált technikáidat használnád.
vitatkoznék az elöttem szólóval: nem értem, miért lenne kevésbé biztosságos a rendszer, mintha az egész oldalt navigálnál.. ugyan úgy szerver oldalon authorizálsz. A JSt csupán a kérésre, illetve a válasz feldolgozására használod.
ebben az esetben baj lehet
Vékony kliens
hát az valóban gáz:)
szerintem sem kérdés
Eloszlattátok kételyeimet
Ez a sok pozitív hozzászólás meggyőzött arról, hogy nincsen félnivalóm a PHP+Ajax megvalósítástól. Talán még azok az előítéletek élnek bennem, amelyek az Ajax-szal való ismerkedés kezdetén keletkeztek bennem. Összességében tényleg nem sok objektív félelmet tudnék felhozni.
Persze azóta már tevékenykedtem néhány Ajax projektben. Az a kijelentés, hogy profi vagyok benne, még enyhénszólva túlzó lenne, de van némi rálátásom. Éppen ezért megfogadom a tanácsaitokat:
-olvasok még egy kis szakirodalmat
-megnézem az ExtJS-t, és más keretrendszereket
-gondosan megtervezem a rendszert
Mégegyszer nagyon köszönöm.
Nem ajánlom DHTM-ben
Én nem tudom ajánlani az alkalmazás kliens oldali részét JavaScript-ben irni, mert őrületesen sok a csapda.
Mostanában egy Ajaxos file upload oldalat csinálok, de már ráment vagy egy napom, és állandóan problémák vannak. Talán irok is erről egy blogbejegyzést valamikor.
Ime néhány probléma, amivel szembesültem a tényleg rövidke file upload projektom fejlesztésekor:
A file uploadot egy iframe-on keresztül valósitom meg. Először úgy gondoltam, hogy az iframe-t dinamikusan hozom létre JavaScripttel, hogy valid legyen a web oldal. A form "target" tulajdonságát pedig beállitottam az iframe nevére (az iframenak "name" és "id" tulajdonságát is beállitottam). A form elküldésekor sajnos a form egy új ablakban nyilik meg MS IE alatt. Kénytelen voltam a HTML kódban egy iframet létrehozni.
Még igy sem működött MS IE alatt! És miert? mert a form 'target' tulajdonságát JS-el állitottam át. Ez persze IE-nak nem tetszett. Ezután kényzelen voltam a HTML kódban beállitani a form "target" tulajdonágát.
Igy már megy.
Azaz 1 darab upload megy. Ha második filet is fel akarok tölteni, akkor a form nem töltődik be újra az iframe-ba.
Persze rájöttem, hogy biztosan az iframe tartalma gyorsitótárazva van. Na erre az iframeba betöltődő HTML-kódban beállitottam a megfelelő meta tagokat. Persze nem ment. Ezután PHP-vel is beállitottam a megfelelő HTTP fejléceket, hogy kikapcsoljam a böngésző gyorsitótárazását. Még igy sem megy, és kifogytam az ötletekből.
További problémám, ha HTTPS-el kérem le az oldalat, akkor MS IE ilyez ir ki "This page contains both secure and nonsecure items ..". Biztosan orvosolni lehet a problémát, csak éppen rámegy pár óra ilyen szarságokra (bocs a csúnya szóért).
A te felvetett kérdésedre a válaszom: a világért se ird JS-ben!!
Néhány probléma:
- JavaScript-el nem lehet mindent megcsinálni, ha igen, akkor egy dual magos CPU kell hozza és nagy koponya plusz pár hét, vagy hónap.
- a böngészők inkompatibilitása még mindig nem a múlté (lásd a fenti problémákat az iframeval)
- memóriaszivárgási problémákra is ügyelni kellene (MS IE6-ra vonatkozik)
- kiszámithatatlan problémák tömkelege várhat rád (problámák versenyhelyzet kialakulásából, stb.).
- nehéz debuggolni a jS-t, egy rakás böngészőn kellene tzesztelni (Opera, MSIE6, MSIE7, Gecko, Safari, stbb..)
Nem támogatott dologgal lehet szívni
A többi felvetés jogos (memóriaszivárgás, versenyhelyzetek, debug nehézségek, böngésző inkompatibilitás).
Nem ismerjük a konkrét feladatot, lehet, hogy tényleg nem célszerű ajax-ozni, ha mindenáron javascriptben akarod megcsinálni, akkor inkább flash actionscript :)
na, azért ennyire nem vészes a helyzet
A "This page contains both secure and nonsecure items .." problémára: ha https-en működik egy oldal, akkor ne használj '../' tartalmazó hivatkozásokat, sem iframebe sem img tagokban.
A probléma inkább abból adódik, hogy a fejlesztők szeretnek komplikálni, és mindent JSel megoldani. Lásd a form targetes dolgot. Amit meg lehet oldani JS nélkül oldjuk is meg! Ami nagy szívás lehet, az a https + ajax. ezzel mi is szívtunk nem is keveset, ugyanis itt egy explorer (6-os) buggal kell szembenézni.
A debuggot nem értem, miért ne lehetne, én ff alatt fejlesztek, és amit a firebug lefuttat, az 99%ban megy IE alatt is. Mellesleg egy webes alkalmazást nem nagyon szoktak minden böngészőre(sőt, igazából semmit) optimalizálni!
Az erőforrásigényességről: volt hogy én is belefutottam, de olyan feladatba még nem, amit ne lehetett volna megoldani. Van néhány trükk itt is, de ezekhez is hozzá lehet férni számos helyen.
Kár,hogy
Póker
gwt + póker
Tanulságos