Hei
Ihan vaan tällaisena keskustelun avauksena kysyisin seuraavaa.
Perinteisessä kolmikerrossovelluksessa serverpuolen business-koodilla voi joko - luoda ja muotoilla lähettävä sivu kokonaisuudessaan ja lähettää asiakkaalle sitten valmis sivu ajaxilla tai kokonaisena www-sivuna tai
- lähettää data asiakkaalle esim JSON-viestinä ja luoda sivu sitten lennosta asiakaspäässä scriptillä tai
- lähettää data esim JSON-viestinä ja liittää se sitten lennosta asiakaspäässä valmiisen sivuaihioon
Eri kehitysympäristöt näyttävät käyttävän hieman erilaisia menetelmiä.
Kysymys kuuluu. Mikä on järkevintä ja millä perusteella.
Riippuu varmaan siitä mitä yritetään luoda. Yksinkertaisen sivuston tapauksessa on varmaan helpointa lähettää kaikki kerralla. Jos järjestelmä kasvaa ja tulee tapauksia, joissa pitää lähettää samanlaista dataa uudelleen ja uudelleen, saattaa olla järkevämpää lähettää vain tämä muuttuva data, eikä ladata koko sivua uudelleen.
En ole vielä kertaakaan törmännyt sivustoon, joka toimisi hyvin ja lataisi kaiken Ajaxilla. Ne toimivat usein todella kömpelösti ja ovat todella huonoja käyttää. Data joudutaan joka tapauksessa lähettämään, joten miksi ei lähettäisi kaikkea kerralla ja antaa selaimen näyttää latausanimaatiot jne, jolloin käyttäjä tietäisi mitä tapahtuu?
Sivun muodostus palvelimella takaa laajimman selaintuen myös ikivanhoille selaimille ja on yksinkertaisinta, jos ei ole tarvetta muulle eikä sivuilla ole kovin paljon vaikkapa AJAX-toiminnallisuutta.
Datan lähetys vaikka JSON-muodossa on erityisen järkevää silloin, kun on nettisivujen lisäksi vaikka erillinen mobiilisovellus tai rajapinta ulkopuolisia ohjelmia varten: data kelpaa samassa muodossa kaikille, ja käyttöliittymiä voi kehittää taustajärjestelmästä erillään. Kun data tulee ilman minkäänlaista kannanottoa esitystapaan, on myös helpompi toteuttaa sivulle jälkikäteen erilaisia hienompia ominaisuuksia ja efektejä, kun ei tarvitse sohia JS:llä valmista HTML-koodia vaan voi aloittaa puhtaalta pöydältä. Huono puoli ratkaisussa tietenkin on väistämätön JS-tuen tarve selaimessa. Hakukoneet myös voivat olla ihmeissään.
Näiden ääripäiden välillä järkevyys riippuu monesta asiasta kuten siitä, mitä koodaaja osaa, mitä kirjastoja halutaan käyttää ja mihin ylipäänsä pyritään.
Macro kirjoitti:
En ole vielä kertaakaan törmännyt sivustoon, joka toimisi hyvin ja lataisi kaiken Ajaxilla. Ne toimivat usein todella kömpelösti ja ovat todella huonoja käyttää.
Mulla esim. Facebook toimii melko hyvin, mutta en ole kyllä kokeillut käyttää sitä esim. todella hitaalla koneella.
Kiitos vastauksista. Metabolixin perustelu uppoaa ainakin itseeni. JSON tai xml-viesti antaa asiakaspään scriptille todellakin vapauden luoda millainen esitys tahansa. Samoin - kuten mainittiin -efektien tehtailu on helppoa, jos itse tieto on oliossa jo odottamassa. Samaa serverpuolen softaa voi kierrättää eri sivustoilla jne...
Javascriptolion kirjoittaminen vaatii hieman vaivaa, mutta vaatiihan se serverpuolen html-tuotoskin.
Sitten lisäisin vielä, että jos on tarve pimittää sivuja (esim kaupalliset julkaisijat) hakukoneilta tai jopa sivun käyttäjältä, koko sivun lataaminen kerralla saattaa olla huono idea.
Mielenkiintoisia kannanottoja.
Kiitoksia
Grez kirjoitti:
Macro kirjoitti:
En ole vielä kertaakaan törmännyt sivustoon, joka toimisi hyvin ja lataisi kaiken Ajaxilla. Ne toimivat usein todella kömpelösti ja ovat todella huonoja käyttää.
Mulla esim. Facebook toimii melko hyvin, mutta en ole kyllä kokeillut käyttää sitä esim. todella hitaalla koneella.
Juu ei toimi. Osittain vika on selaimissa, ne ovat hitaita ja bugisia, mutta kai nyt osasta ongelmia voi myös itse sivustoa syyttää. Firefox on tosiaan vain hidas, mutta sitten Chrome olisi nopeampi mutta jossain välissä se alkaa kuluttaa satoja megoja per Facebook-välilehti ja myöhemmin kilahtaa syötyään kaiken muistin. Dynaamisesti ladatuissa sivuissa historiatoiminto pykii huolella, eli välillä eteen- ja taaksepäin navigoidessa selain hyppii sivulta toiselle miten sattuu ja hukkaa sivuja välistä. Sivuhistorian sekoaminen on suurin ongelma jokaisella "ajax-sivustolla".
Tämä Ohjelmointiputkan paskakin hukkaa aina muokatusta viestistä kaikki muokkaukset, kun suljetun välilehden palauttaa undo-toiminnolla tai navigoi sivuhistoriassa.
Ajax-sivut eivät myöskään toimi kovin hyvin mobiiliselaimilla. Yleisestikin ottaen mitä enemmän skriptejä sivussa on, sitä huonompi sitä on käyttää millään selaimella, mutta puhelimissa ja tablukoissa tämä ongelma on erityisen suuri.
The Alchemist kirjoitti:
Chrome olisi nopeampi mutta jossain välissä se alkaa kuluttaa satoja megoja per Facebook-välilehti ja myöhemmin kilahtaa syötyään kaiken muistin.
Ai niin, itselläkin söi tuhottomasti muistia kun ei ollut adblockia käytössä. Ei tosin koskaan ole ehtinyt kilahtaa sen takia.
Toisaalta ehkä "hevikäyttäjillä" se on muutenkin raskaampi kuin minulla.
Aihe on jo aika vanha, joten et voi enää vastata siihen.