Web-applikasjoner er uforvarende å erstatte de gamle desktop-applikasjoner. De er mer praktisk å bruke, de er lett å oppdatere, og de er ikke bundet til én enhet. Og selv om brukerne er forsiktig flytte fra nettleser-basert web-applikasjoner i mobile kjære, behovet for komplekse og raffinert apps er allerede enormt, og vokser fortsatt., Hvis du tenker på å lage ditt eget program, du har sikkert hørt at det er to viktigste design patterns for web apps: multi-side-programmet (MPA) og single-side-programmet (SPA). Og selvfølgelig, begge modellene har sine fordeler og ulemper.

Før du begynner å snu en idé til ekte program, du må svare på en haug av viktige spørsmål. For å avgjøre hva app-modellen er bedre for deg, bør du følge innhold-første tilnærming, noe som understreker viktigheten av å sette din søknad innhold før alt annet., Det er fordi innholdet er det viktigste grunn for hvilke brukere som vil eller ikke vil bruke programmet. Og dette fører oss til det viktigste spørsmål: hva slags innhold ønsker du å presentere og hva dine brukere vil bry seg om de.

Det er mange fordeler og ulemper med SPA, så vel som av MPA. Jeg håper at linjene nedenfor vil fjerne forskjellene mellom disse to design mønstre og å bringe dere nærmere til det punktet hvor du vil vite hva slags program som passer din idé mer. Og gjøre ideen om egen søknad til virkelighet.,

En enkeltside-programmet er en app som fungerer inne i en nettleser og ikke kreve side omlasting under bruk. Du bruker denne typen av programmer hver dag. Dette er, for eksempel Gmail, Google Maps, Facebook eller GitHub.
SPAs er alt om som serverer en fremragende UX ved å prøve å etterligne en «naturlig» miljø i nettleseren — ingen-siden lastes inn på nytt, uten ekstra ventetid. Det er bare en web-sider du besøker, som deretter laster alt annet innhold ved hjelp av JavaScript — som de sterkt avhengige av.,

SPA forespørsler markup og data uavhengig av hverandre og gjør sider rett i nettleseren. Vi kan gjøre dette takket være den avanserte JavaScript-rammeverk som AngularJS, Ember.js, Meteor.js, Knockout.js .
Single-side nettsteder bidra til å holde brukeren i en komfortabel og webhotell hvor innholdet er presentert til brukeren på en enkel, lett og gjennomførbar måte.

Fordeler av Single-Side Søknad:

  • SPA er rask, som de fleste ressurser (HTML+CSS+Skript) er bare lastet gang gjennom hele levetiden av programmet. Bare data blir sendt frem og tilbake.,
  • utvikling er forenklet og effektivisert. Det er ikke nødvendig å skrive kode for å gjengi sider på serveren. Det er mye lettere å få i gang fordi du kan vanligvis kick off utvikling fra en file://URI, uten å bruke en hvilken som helst server i det hele tatt.
  • SPAs er lett å feilsøke med Chrome, så du kan overvåke nettverk, undersøke side elementer og data som er forbundet med det.
  • Det er lettere å lage en mobil applikasjon fordi utvikleren kan bruke de samme bakenforliggende koden for web-applikasjon og lokale mobile-programmet.
  • SPA kan cache noen lokal lagring effektivt., Et program sender bare en forespørsel, lagre alle data, så det kan bruke disse dataene, og arbeider selv i frakoblet modus.

Ulemper for Enkelt-Side Søknad:

  • Det er svært vanskelig og ikke en lett oppgave å gjøre SEO optimalisering av en enkeltside-Programmet. Innholdet er lastet med AJAX (Asynchronous JavaScript og XML) — en metode for utveksling av data og oppdatering i programmet uten å oppdatere siden.
    OPPDATER 27.09.2017: I sin kommentar, Iris Shaffer riktig påpekt at det kan gjøres på server side. Det er faktisk enklere i dag enn det pleide å være.,
  • Det er for treg til å laste ned, fordi tunge klient rammer er nødvendig for å bli lagt til klienten.
  • Det krever JavaScript for å være til stede og aktivert. Dersom en bruker deaktiverer JavaScript i nettleseren sin, det vil ikke være mulig å presentere program og sine handlinger på en korrekt måte.
    OPPDATER 27.09.2017: I sin kommentar, Iris Shaffer har lagt merke til at med isomorphic gjengivelse / server side rendering, kan du gjengi siden på serveren allerede. Når den innledende gjengi er på server og kan hurtigbufres, deaktivere JS ville ikke være en bekymring for å få en gjengis side., Teoretisk sett, det er riktig. Selvsagt kan du gjengi på server siden. Men mangel av JS kan være et problem for andre funksjoner. Mange ting kan gjøres i HTML & CSS, men fra min erfaring det ville være helvete å gjøre det på denne måten i stedet for å bruke JavaScript.
  • i Forhold til «tradisjonell» – programmet, SPA, er mindre sikker. På grunn av Cross-Site Scripting (XSS), den gjør det mulig for angripere å injisere client-side scripts til web-applikasjon av andre brukere.,
  • minnelekkasje i JavaScript kan også føre til kraftige systemet til å bremse ned
  • I denne modellen, tilbake og frem-knappene bli dysfunksjonell.
    OPPDATER 27.09.2017: i Dag, det er ikke et problem lenger.

Multi-Side Søknaden

Flere sider programmer som fungerer i en «tradisjonell» måte. Hver endring f.eks. vise data og sende data tilbake til serveren ber om å gjøre en ny side fra serveren i nettleseren. Disse programmene er store, større enn SPAs fordi de trenger å være. På grunn av mengden av innhold, disse programmene har mange nivåer av UI., Heldigvis, det er ikke et problem lenger. Takk til AJAX, vi trenger ikke å bekymre deg for at store og komplekse applikasjoner har til å overføre mye data mellom server og nettleser. Som løsning som forbedrer og det gjør det mulig å oppdatere bare bestemte deler av programmet. På den annen side, det gir mer kompleksitet, og det er vanskeligere å utvikle enn en single-side-programmet.

Fordeler av Flere sider Søknad:

  • Det er den perfekte tilnærming for brukere som trenger et visuelt kart over hvor du skal gå i programmet., Solid, noen nivå meny-navigering er en viktig del av tradisjonelle Multi-Side-Programmet.
  • Veldig bra og enkelt for riktig SEO ledelse. Det gir bedre muligheter til å rangere for ulike søkeord siden et program kan være optimalisert for ett søkeord per side.

Ulemper av flere sider søknad:

  • Det er ingen mulighet til å bruke de samme bakenforliggende med mobile applikasjoner.
    OPPDATER 27.09.2017: Tilbake da, når jeg skrev denne artikkelen, jeg hadde ikke mye erfaring med backend og med mobile apps., Det er klart for meg nå at du kan bruke den samme backend for begge. Og jeg vil gjerne takke alle lesere som pekte det ut.
  • Frontend og backend utvikling er tett koblet.
  • utvikling blir ganske komplisert. Utvikleren har behov for å bruke rammer, enten for klient og server side. Dette resulterer i lengre tid av programutvikling.

SPA eller MPA?

Før distribusjon av en web-applikasjon, må du vurdere mål av det., Hvis du vet at du trenger flere kategorier (fordi, for eksempel, kan du kjøre en online butikk eller publisere en rekke andre innhold) — bruke en multi-side-området. Hvis du er sikker på at nettstedet er passende for en ren enkelt-side opplevelse — gå for det. Og hvis du liker SPA-men kan knapt er plass til alt i en enkelt side, bør du vurdere hybrid området i stedet. Dette er en annen måte jeg ikke har nevnt før. En hybrid programmet tar hva som er det beste i begge tilnærminger og prøve å minimere ulempene., Det er, faktisk, en enkelt side programmer som bruker URL ankere som syntetiske sider slik at flere i bygge-leseren navigasjon og preferanse funksjonalitet. Men dette er tema for en annen artikkel.

Kanskje i fremtiden, kommer alle til å bruke Én Side Søknaden modell (inkludert en hybrid-app), som det synes å bringe en rekke fordeler. Mange programmer på markedet migrerer mot denne modellen. Men, som noen prosjekter kan rett og slett ikke passer inn i SPA, MPA-modellen er fremdeles levende.

utgitt av Paweł Skólski på neoteric.eu/blogg 1. desember 2016.