#19
Pedig nem egy halálbonyolult dologra kell gondolni. A szerveroldali osztályokban (amelyek a honlap egyes funkcióinak felelnek meg) az XML-kimenetet előállító metódus mellé kell implementálni egy HTML-kimenetet generáló metódust is, illetve a honlapot a HTML-kimenetre felépíteni, a felhasználónál a böngészőben pedig diszkrét JS-tel szépen felülbírálni a linkek, formok eseményeit. Vázlatosan úgy érdemes gondolni erre a mókára, mint egy szerver-kliens modellre: a honlap lelke (ez többnyire leginkább a honlap mögött dolgozó adatbázis elérését és manipulálását megvalósító osztályokat jelenti) a szerver, amelyhez két kliensed van, ami tulajdonképpen a megjelenítést végzi. Ami a főlap megnyitásakor betöltődik, az lesz egy olyan kliens, ami a szerveroldalon elintézi a megjelenítést, azaz a HTML-kód generálását (nem a képernyőn való megjelenítést értem ezalatt). Ez persze üzemel rendesen, keresőbarát linkekkel, ha viszont van JS-támogatás, akkor a főoldal betöltődése után elindul az AJAX-kliens, ami a megjelenítést illetve a szerverrel (ezalatt az adatbázis-manipuláló és input-feldolgozó scripteket értve, nem pedig magát a webszervert) való kommunikációt végzi.
Tulajdonképpen a beolvasó- és adatfeldolgozó, adatelőállító osztályok mellé kétféle megjelenítőt kell írni: az egyik megjelenítő a szerveroldalon fut, és HTML-kódot generál (mindig előállítva egy teljes oldalt), ez gyakorlatilag ugyanaz, mint egy mezei honlap, illetve egy AJAX-os megjelenítőt, ami az iménti osztályokkal a háttérben kommunikál, és az adatok alapján a kliensnél állítja elő a HTML-kódot, dinamikusan.
Például nézzünk egy Google Maps-oldalt, pl. egy útvonalkeresőt. JavaScript nélkül nyilván nem fog megjelenni maga a térkép, tehát az adatok vízuális megjelenítését rábízhatjuk egy csilli-villi ablakozós AJAX felületre. JavaScript nélkül viszont a térkép helyett szerveroldalon előállíthatunk egy listát az útvonal checkpoint-jaiból, amit egy igényes táblázatba rendezve HTML-ként jeleníthetünk meg. A checkpointokat előállító scriptet elég egyszer megírni, hiszen egy útvonalat nyilván ezek a pontok fognak meghatározni, ami megjelenítéstől függetlenül mindig ugyanaz. Csak egyrészt egy interaktív térképen kis ikonokkal jeleníted meg, másrészt pedig ezen pontok adatait állítod elő egy táblázatban. Alapból a táblázat töltődik be, amit JS-ből rögtön elrejtesz, és előállítod a helyére a térképet a kis ikonokkal együtt.
Persze vannak olyan alkalmazások, amik mindenképp igénylik a JavaScriptet (pl. egy komplex szövegszerkesztő), de érdemes gondolni arra, hogy egy alkalmazás adatait JS nélkül is el lehessen érni (pl. egy webshophoz, kvízjátékhoz, szochálós portálhoz illik JS-mentes felületet is gyártani).