SPA 1. časť: Web bez reloadov

8
66

reload

Jednou z najotravnejších čŕt webu je neustále čakanie. Kliknete na odkaz v menu a čakáte, kým sa stránka načíta. Omyl? Kliknete inam a opäť čakáte. Stále nič? Čo tak použiť vyhľadávacie pole a opäť čakať?

Na neustále čakanie našťastie existuje liek. Sú ním čoraz populárnejšie Single Page Applications v skratke SPA. Ak ste si všimli, že Facebook a Gmail sú narozdiel od iných webov ultra rýchle, vedzte, že to nie je náhoda – oba sú SPA.

Filozofiou SPA je žiadne ďalšie načítavanie. Stránka sa načíta práve raz, pri jej prvom navštívení. Akúkoľvek ďalšiu interakciu, prekresľovanie, načítavanie, spracovávanie formulárov rieši Javascript v browseri. Treba komunikovať so serverom? Na to slúži AJAX.

Ak ste niekedy pridávali na stránku trochu AJAXu na zrýchlenie, tak dokážete precítiť tú hĺbku – celá stránka je jeden pekelne rýchly Javascript. Ako je príjemné, keď stránka reaguje svižne, si môžete vyskúšať na tomto jednoduchom deme.

Spraviť dobrú Single Page Application však obnáša oveľa viac, ako napísať pár riadkov kódu v jQuery. Užívatelia chcú naďalej

  • mať históriu prehliadania
  • mať možnosť poslať známym link (na kúpené sushi)
  • po stlačení reload tlačidla ostať tam, kde sú, neocitnúť sa v počiatočnom stave
  • nájsť stránku vo vyhľadávači

Vyriešiť poriadne uvedené problémy nie je nemožné, no ani triviálne. Navyše, ako rastie množstvo riadkov kódu v Javascripte, prichádzajú problémy s udržateľnosťou kódu. Stoja pred Vami otázky:

  • Ako organizovať desiatky tisíc riadkov dlhý Javascript do viacerých súborov?
  • Ako testovať Javascript?
  • Ako generovať veľa HTML kódu v Javascripte?
  • Ako spraviť dobrý objektový návrh pre Javascriptovú aplikáciu?
  • Ako zabrániť memory-leakom v Javascripte?
  • Existuje nejaký dobrý framework, ktorý by sa hodilo použiť?

Odpovede na tieto otázky, tipy a rady pri vývoji SPA sa nezmestia do jedného článku. Budem Vám ich najbližších pár týždňov prinášať formou seriálu. Začíname na budúci týždeň, zatiaľ čau!

Dobrý článok? Chceš dostávať ďalšie?

Už viac ako 4 000 z vás dostáva správy e-mailom. Nemusíš sa báť, nie každé ráno. Len občasne.

Váš email neposkytneme 3tím stranám. Posielame naňho len informácie z robime.it. Kedykoľvek sa môžete odhlásiť.

  • Majo

    Drzim palce pri tvorbe tohto blogu…

  • Roman Hesteric

    V praci pouzivame GWT, kazdopadne sa budem tesit, hlavne na cast o testovani SPA.

    • Svetlana Margetová

      Ahj a to vyvijate v Jave, ked pouzivate GWT? Paci sa ti? Ako ide vyvoj? Si spokojny? No na testovanie sa tesim aj ja

      • Roman Hesteric

        Ano, Svetlana. Vyvijame hlavne v jave. GWT teraz u nas leti. Okrem toho aj klasicke POJO, J2EE servlety, atd. Kazdopadne zatial som sa nestretol s automatickym testom GWT aplikacie, okrem JUnitu v spojeni so Seleniom, co je vsak skor sucast developmentu. Preto som zvedavy, co sa dozviem.

  • Hmm

    Tesim sa 🙂 presne toto by sa nam hodilo v praci

  • Svetlana Margetová

    najlepší článok, aký som v poslednej dobe čítala, ja sa teraz zaujímam veľa o SPA a o vývoj v Angulari a počula som už aj o Drafte, ale vraj nemá dobrú podporu pre Mozillu

    • Ľuboš Beran

      Veď ten článok je len o tom, o čom bude seriál, nič podstatné v ňom neni. Nechcem hovoriť, že tento nápad je zlý, práve naopak. Tento nápad je výborný a chýbal tu, ale nazvať intro do seriálu “najlepším článkom aký si v poslednej dobe čítala”, to chce teda gule. Resp. asi toho teda veľa nenačítaš. 🙂 Btw, nevenovala si sa teraz naposledy náhodou Djangu a Pythonu ? 😉

      Btw… autor držím palce pri dalších častiach. 🙂

      • Svetlana Margetová

        Ano v tej dobe som toho vela necitala ale myslela som naj clanok o SPA, oproti tym clankom co som citala dovtedy a este stale sa venujem Pythonu a Djangu, toto bolo ucenie sa v ramci projektu prepojenia Djanga s Angularom na principe SPA cez Django REST API tak som googlila o SPA vsetko mozne 🙂