ugrás a tartalomhoz

Szemléletváltozás az új technológiákkal

Bártházi András · 2006. Jún. 3. (Szo), 15.56
A trendeken, a JavaScript fejlesztésen gondolkodva, egy talán érdekesnek nevezhető irányt fedeztem fel, mely önmagában ugyan egy nem túl érdekes a dolog, de talán mint trend, segíthet a web alakulásának megértésében. Íme a (nagyon rossz) költői kérdés, mellyel többször is találkoztam már a Weblabor fórumán: "Hogyan tudok PHP-ből popup ablakot nyitni?". Te mit válaszolnál? Mit válaszoltál volna 2 éve?

Mielőtt rátérnék a válaszokra: magának a példának nincs kb. semmi értelme, csak szemléltetési célokat szolgál.

Válasz 1.0

A kérdés első megközelítésben "hülyeség", hiszen a PHP a szerver oldalon fut, a popup ablakot pedig a böngészőben futó JavaScript tudja végrehajtani. Nem beszélve arról, hogy a popupok kora nagyrészt lejárt, pontosabban erősen leszűkült egy területre (ahogy a frame-ek kora is lejárt, s elég kevés dologra lehet ajánlani használatukat). Ha valaki ilyen kérdést tesz fel a Weblaboron ma, biztosan ott lesz a válaszok között, hogy gondolja végig, mi hol fut, s hogy PHP-ből közvetlenül semmiképp sem lehet popup-ot nyitni.

Válasz 2.0

Ha túltesszük magunkat azon, hogy a kérdés rosszul van megfogalmazva, és rájövünk, hogy a kérdező biztos arra gondolt: hogyan lehet elérni PHP segítségével, hogy az oldal letöltődése után egy popup ablak nyíljon, akkor már lehet egy választ is adni. Ez nem lesz más:
<?
echo '<script type="text/javascript">';
echo '  window.open("http://weblabor.hu");';
echo '</script>';
?>
Tehát a PHP program az oldal generálása során kiküld egy JavaScript kódrészletet, ami nyitni fog egy popup ablakot (amit a popup blokkoló, hacsak nincs másként beállítva, nem fog megnyílni engedni - de ez egy másik történet).

Válasz 3.0

Van egy harmadik megoldás is, mely esetünkben erős túlzás, egy webalkalmazás esetén viszont akár az egyetlen jól működő út lehet. A trendeknek megfelelően a HTML kód nem fog JavaScript kódot tartalmazni (csak hivatkozva lesz <script> elemmel), így teljes mértékben gyorsítótárazható lesz.

A lényeg: a böngésző a szerverhez fordul egy XMLHTTPRequest() kérés segítségével, a válaszban pedig megkapja az utasítást: nyiss egy ablakot.

Mi is a mondanivaló?

A kérdés másképp is hangozhatott volna, például így: hogyan tudok átadni PHP-ből a JavaScriptnek adatokat, például ahhoz, hogy egy rendezhető listát megjelenítsek? A választ nem feltétlenül egyértelmű, az adott helyzettől függhet, de egy éve nem hiszem, hogy egyáltalán bárkinek eszébe is jutott volna, hogy ezt az információt ne közvetlenül egy JavaScript tömböt a HTML kódba írva juttassuk el a böngészőhöz. Pedig adott esetben akár jó ötlet is lehet.

Még mindig nem válaszoltam meg, hogy mit akarok ezzel mondani. Sokat semmiképp sem, talán annyit, hogy a Web világában olyan gyors a fejlődés, hogy sokszor felül kell vizsgálnunk az addig jónak gondolt vagy vélt, többször tesztelt és bevált megoldásokat, és adott esetben egy rossz kérdés is segíthet elgondolkozni.

Nem szeretném mondani viszont, hogy:
  • kérdezzünk rosszul,
  • nyissunk popupokat,
  • alakítsuk át az eddig jól működő rendszerünket.
 
1

annyira ez nem új

Hodicska Gergely · 2006. Jún. 4. (V), 08.06
de egy éve nem hiszem, hogy egyáltalán bárkinek eszébe is jutott volna, hogy ezt az információt ne közvetlenül egy JavaScript tömböt a HTML kódba írva juttassuk el a böngészőhöz

Azért ez már egy éve sem volt új. Emlékeim szerint a bitflux féle livesearch megoldása is akkor "nagy port kavart", pedig akkor is még sehol sem volt az AJAX. (Meg ugye ott az OWE.) De én is csináltam olyan admint 2003 elején, ami már "AJAX"-szal működött, mert amúgy bizonyos szerkesztések túl sok oldalváltást eredményeztek volna.


Felhő

u.i. Viszont a fejlődésről szólva: tegnap néztem meg a Gábor által nemrég beküldött GWT-s linket, elég érdekes megoldásnak tűnik, és hát ha valakinek, akkor a Googlnak van tapasztalata AJAX-os alkalmazások készítésében.
2

jo sejtes

Kelemen Zádor · 2006. Jún. 6. (K), 20.33
ha meg nem ismeritek, ajanlom figyelmetekbe: http://www.morfik.com/
3

kapcsolat

Tome · 2006. Jún. 7. (Sze), 16.19
Tök jó, hogy AJAX-os az oldal (bár az URL-ek nagyon rondák!), de hogyan is kapcsolódik ez ide??
4

webes M$ access

Táskai Zsolt · 2006. Jún. 7. (Sze), 16.30
ez durva nagyon. egy az egyben koppinották az access képernyőit. meg minden funkcióját. ilyenkor kicsit megértem a web2-ben kétkedőket/csalódottakat. ilyen tucatmegoldásokkal csak a desktop idők tucatmegoldásait transzponáljuk a webes világba...
de marhára webkettes meg minden - a tálalás!

u.i.: tényleg hogy jön ez ide? és bocs Andrástól, amiért én is belerondítottam ebbe a némileg off szálba a topikjában.
5

a javascript generalas

Kelemen Zádor · 2006. Jún. 7. (Sze), 21.34
Nagyon azon dolgoznak, hogy a kliens oldali javascripteket szerver oldali megoldasokkal generaljak s erre probalnak egy egyseges feluletet kitalani. Regebben kiprobaltam a szoftveruket, engem nem nyert meg, de masok most is dicserik.

"Using WebOS AppsBuilder, you can implement the business logic of your application in a high-level object-oriented language of your choice. Basic, C#, Java and Object Pascal are currently supported. The Morfik Compiler uses patent pending JavaScript Synthesis Technology (JST), to generate the JavaScript AJAX Engine for the browser and the server-side application. If you wish, you can even mix and match languages to meet your needs!"