Valaki a kedves Olvasók közül a böngészők közötti különbségekre volt kíváncsi, így hát írok pár szót erről a témáról. Jelenleg sok böngésző van forgalomban, itt van néhány a teljesség igénye nélkül: Mozilla Firefox(ezt teszi fel defaultban egy UNIX/LINUX oprendszer), Internet Explorer(ezt teszi fel defaultban egy Windows oprendszer), Opera, Safari, Google Chrome, Avant browser, Konqueror, Lynx, Maxthon, AOL Explorer, K-Meleon, Flock. Ezek közül az első öt a legelterjedtebb.
Mi a különbség közöttük?
A böngészőket durván 2 nagyobb részre lehet bontani: A külső (megjelenés, layout, design) rész, amit a felhasználó lát és használ, és az interpreter(fordító) rész. Az interpreter is több részre oszlik, van külön HTML, CSS fordító, illetve van JavaScript fordító, ezen felül pedig böngészőnként változó kiegészítők vannak, illetve ún. Extension-ök, amiket általában utólag telepít a juzer (ilyen pl. a Flash Player, Java Virtual Machine). Egy 1.0-ás juzer (fiatal/kezdő vagy buzi fiúk, valamint a lányok 99.9%-a) azt hinné, hogy a különbség a designban rejlik, de valójában a böngésző legfontosabb része a HTML és a JavaScript fordító.
Amikor letöltünk egy oldalt (ez lehet statikus HTML, vagy a szerveren dinamikusan -PHP-vel, ASP-vel- generált HTML kód), akkor az oldal forrása a böngésző fordítójába kerül, ami a leírónyelv(HTML, CSS) alapján kirajzolja a weboldalt. Tehát minden oldal a weben a HTML kódja alapján néz ki úgy, ahogy (ez az Oldal forrása menüben megtekinthető). A JavaScript arra jó, hogy kliens oldalon (a böngészőben, az Internetező felhasználó processzorát és memóriáját terhelve) tegyük dinamikussá a HTML tartalmat, viszont JavaScript-el alapesetben nem tudunk hozzáférni a szerveren található adatokhoz(adatbázis, fájlok), pedig sokszor szükségünk lehet rá a gyakorlatban (ennek a probémának az áthidalására használják az AJAX-ot, erről alább még írni fogok).
Mint említettem, a böngsző két részre oszlik: design és fordító. A fent található böngészőlistából az Internet Explorert emelném ki, mint az egyetlen olyat, amelynek egyik részt sem sikerült normálisan, használhatóan reprezentálnia. Bár a design és letisztultság javítására voltak próbálkozások az utóbbi 1-2 verzióban, de igazából az ötletek(tabok, billenytűparancsok) nagy részét a Firefox-ból lopta, valamint a JavaScript fordítójának is csupán csak annyi baja van, hogy a valid JavaScriptel még csak köszönőviszonyban sincs, egyébként semmi más.
A másik hiperszuper böngésző a Safari, ami szerint a <b> és a </b> az ördög játékszere, ugyanis az egyik BETA verziójában az általam és Athos által ismert HTML és CSS technológiákkal sem sikerült így megvastagítani egy fuckin' szöveget, de ettől függetlenül a design itt már sokkal letisztultabb, mint pl az IE esetében. Egyébként a "böngésző weboldala azért csak jelenjen már meg normilisan a böngészőben" típusú problémát a Safari fejlesztők igen elegánsan megoldották: A safari honlapját úgy "optimalizálták" a böngészőhöz, hogy egyetlen vastagított szöveget sem használtak az oldalukon. Grat! (Jah, nekem tudásanyag híján nincs hatalmamban saját böngészőt/interpretert programozni, ezért természetesen a kisebb-nagyobb hibáktól függetlenül még minden elismerésem a fejlesztőké).
A kliens oldali webprogramozás legnagyobb problémájára világít rá a fent leírt pár bekezdés: nehéz olyan kódot írni, ami minden böngészőben ugyanúgy jelenik meg/ugyanúgy működik, szinte lehetetlen. Erre találta ki a W3C a szabványokat, amelyeket az újabb böngészők már többé-kevésbé be is tartanak, megkönnyítve ezzel számtalan webprogramozó munkáját. Talán eljön az az idő, amikor egy kódot bőven elég egy böngésző alatt tesztelni.
Belegondolva, néha szükségünk lehet rá (a weboldal hatékonyságát és sebességét növelendő), hogy valamilyen felhasználói eseményre kérjünk le adatokat a szerverről (pl gombra kattintásra), az oldal újratöltése nélkül (újratöltésnél esetleg felesleges lekérdezéseket és egyéb műveleteket futtatnánk újra). Erre megoldás az AJAX technológia, amiről már írtam ebben a blogban.
Végezetül, írtam JavaScriptben egy AJAX-kérést lebonyolító osztályt, aki kezdőként foglalkozik webfejlesztéssel annak hasznos lehet, ha másra nem, tanulás céljából.
Letölthető innen: http://robberplayground.extra.hu/ajax.zip