# Izdelava bančne aplikacije, 1. del: HTML predloge in poti v spletni aplikaciji Ko je računalnik za vodenje misije Apollo 11 leta 1969 navigiral na Luno, je moral preklapljati med različnimi programi, ne da bi ponovno zagnal celoten sistem. Sodobne spletne aplikacije delujejo podobno – spreminjajo, kar vidite, brez ponovnega nalaganja vsega od začetka. To ustvarja gladko in odzivno izkušnjo, ki jo uporabniki danes pričakujejo. Za razliko od tradicionalnih spletnih strani, ki za vsako interakcijo ponovno naložijo celotne strani, sodobne spletne aplikacije posodabljajo le dele, ki jih je treba spremeniti. Ta pristop, podobno kot pri misijskem nadzoru, ki preklaplja med različnimi prikazi ob ohranjanju stalne komunikacije, ustvarja tekočo izkušnjo, ki smo jo vajeni. Tukaj je, kaj naredi razliko tako dramatično: | Tradicionalne večstranske aplikacije | Sodobne enostranske aplikacije | |--------------------------------------|--------------------------------| | **Navigacija** | Polno nalaganje strani za vsak zaslon | Takojšnje preklapljanje vsebine | | **Zmogljivost** | Počasnejše zaradi celotnega prenosa HTML | Hitrejše s parcialnimi posodobitvami | | **Uporabniška izkušnja** | Utripi strani | Gladki, aplikaciji podobni prehodi | | **Deljenje podatkov** | Težavno med stranmi | Enostavno upravljanje stanja | | **Razvoj** | Več HTML datotek za vzdrževanje | Ena HTML datoteka z dinamičnimi predlogami | **Razumevanje evolucije:** - **Tradicionalne aplikacije** zahtevajo strežniške zahteve za vsako navigacijsko dejanje - **Sodobne SPA** se naložijo enkrat in dinamično posodabljajo vsebino z uporabo JavaScripta - **Pričakovanja uporabnikov** zdaj favorizirajo takojšnje, brezšivne interakcije - **Prednosti zmogljivosti** vključujejo zmanjšano porabo pasovne širine in hitrejše odzive V tej lekciji bomo izdelali bančno aplikacijo z več zasloni, ki se gladko povezujejo. Tako kot znanstveniki uporabljajo modularne instrumente, ki jih je mogoče prekonfigurirati za različne eksperimente, bomo uporabili HTML predloge kot ponovno uporabne komponente, ki jih je mogoče prikazati po potrebi. Delali boste z HTML predlogami (ponovno uporabni načrti za različne zaslone), JavaScript usmerjanjem (sistem, ki preklaplja med zasloni) in zgodovinskim API-jem brskalnika (ki ohranja delovanje gumba za nazaj, kot je pričakovano). To so iste osnovne tehnike, ki jih uporabljajo ogrodja, kot so React, Vue in Angular. Na koncu boste imeli delujočo bančno aplikacijo, ki prikazuje profesionalna načela enostranskih aplikacij. ## Predhodni kviz [Predhodni kviz](https://ff-quizzes.netlify.app/web/quiz/41) ### Kaj boste potrebovali Za testiranje naše bančne aplikacije bomo potrebovali lokalni spletni strežnik – brez skrbi, to je lažje, kot se sliši! Če ga še nimate nastavljenega, preprosto namestite [Node.js](https://nodejs.org) in zaženite `npx lite-server` iz vaše projektne mape. Ta priročen ukaz zažene lokalni strežnik in samodejno odpre vašo aplikacijo v brskalniku. ### Priprava Na vašem računalniku ustvarite mapo z imenom `bank` in v njej datoteko z imenom `index.html`. Začeli bomo s tem [osnovnim HTML](https://en.wikipedia.org/wiki/Boilerplate_code): ```html Bank App ``` **Kaj zagotavlja ta osnovna predloga:** - **Vzpostavi** strukturo dokumenta HTML5 z ustrezno deklaracijo DOCTYPE - **Nastavi** kodiranje znakov na UTF-8 za podporo mednarodnim besedilom - **Omogoči** odzivno oblikovanje z meta oznako viewport za mobilno združljivost - **Določi** opisni naslov, ki se prikaže na zavihku brskalnika - **Ustvari** čist razdelek telesa, kjer bomo zgradili našo aplikacijo > 📁 **Predogled strukture projekta** > > **Na koncu te lekcije bo vaš projekt vseboval:** > ``` > bank/ > ├── index.html > ├── app.js > └── style.css > ``` > > **Odgovornosti datotek:** > - **index.html**: Vsebuje vse predloge in zagotavlja strukturo aplikacije > - **app.js**: Upravlja usmerjanje, navigacijo in upravljanje predlog > - **Predloge**: Določajo uporabniški vmesnik za prijavo, nadzorno ploščo in druge zaslone --- ## HTML predloge Predloge rešujejo temeljni problem pri razvoju spletnih aplikacij. Ko je Gutenberg v 1440-ih izumil premično tiskarsko tehniko, je ugotovil, da namesto rezljanja celotnih strani lahko ustvari ponovno uporabne črkovne bloke in jih razporedi po potrebi. HTML predloge delujejo na istem principu – namesto da ustvarimo ločene HTML datoteke za vsak zaslon, definiramo ponovno uporabne strukture, ki jih je mogoče prikazati po potrebi. Predstavljajte si predloge kot načrte za različne dele vaše aplikacije. Tako kot arhitekt ustvari en načrt in ga uporabi večkrat, namesto da bi znova risal identične sobe, mi ustvarimo predloge enkrat in jih po potrebi uporabimo. Brskalnik te predloge drži skrite, dokler jih JavaScript ne aktivira. Če želite ustvariti več zaslonov za spletno stran, bi bila ena rešitev ustvariti eno HTML datoteko za vsak zaslon, ki ga želite prikazati. Vendar pa ta rešitev prinaša nekaj nevšečnosti: - Celoten HTML je treba ponovno naložiti ob preklopu zaslona, kar je lahko počasno. - Težko je deliti podatke med različnimi zasloni. Drugi pristop je, da imamo samo eno HTML datoteko in definiramo več [HTML predlog](https://developer.mozilla.org/docs/Web/HTML/Element/template) z uporabo elementa `