Web-applikationer er uforvarende erstatte den gamle desktop-applikationer. De er mere praktiske at bruge, de er nemme at opdatere, og de er ikke bundet til en enhed. Og selvom brugerne forsigtigt bevæger sig fra bro .serbaserede webebapplikationer til de mobile, er efterspørgslen efter komplekse og raffinerede apps allerede enorm og vokser stadig., Hvis du overvejer at oprette din egen applikation, har du sikkert hørt, at der er to hoveddesignmønstre til webebapps: flersidet applikation (MPA) og enkeltsidet applikation (SPA). Og selvfølgelig har begge modeller deres fordele og ulemper.

før du begynder at omdanne din ID.til den rigtige applikation, skal du svare på en masse vigtige spørgsmål. For at beslutte, hvilken appmodel der er bedre for dig, skal du følge content-first-tilgang, der understreger vigtigheden af at sætte dit applikationsindhold før alt andet., Det skyldes, at indhold er hovedårsagen til, at brugere vil eller ikke vil bruge applikationen. Og dette fører os til de vigtigste spørgsmål: Hvilket indhold vil du præsentere, og hvilket indhold dine brugere vil bekymre sig mest om.

Der er mange fordele og ulemper ved SPA samt MPA. Jeg håber, at linjerne nedenfor vil rydde forskellene mellem disse to designmønstre og bringe dig tættere på det punkt, hvor du vil vide, hvilken type applikation der passer til din ide mere. Og gøre din ID.om egen ansøgning til virkelighed.,

et enkeltsidet program er en app, der fungerer i en bro .ser og ikke kræver side genindlæsning under brug. Du bruger denne type applikationer hver dag. Disse er for eksempel: Gmail, Google Maps, Facebook eller GitHub.
kurbade handler om at betjene en fremragende U.ved at forsøge at efterligne et “naturligt” miljø i Bro .seren — ingen side genindlæses, ingen ekstra ventetid. Det er kun en webebside, du besøger, som derefter indlæser alt andet indhold ved hjælp af JavaScript — som de i høj grad er afhængige af.,

SPA anmoder om annotation og data uafhængigt og gør siderne lige i Bro .seren. Vi kan gøre dette takket være de avancerede JavaScript-rammer som AngularJS, Ember.js, Meteor.js, Knockout.js .
enkeltsidede .ebsteder hjælper med at holde brugeren i et, behageligt webebhotel, hvor indholdet præsenteres for brugeren på en enkel, nem og brugbar måde.

fordele ved Enkeltsideprogrammet:

  • SPA er hurtig, da de fleste ressourcer (HTML+CSS+Scripts) kun indlæses en gang i hele programmets levetid. Kun data overføres frem og tilbage.,
  • udviklingen er forenklet og strømlinet. Det er ikke nødvendigt at skrive kode for at gengive sider på serveren. Det er meget lettere at komme i gang, fordi du normalt kan starte udvikling fra en filfil://URI, uden at bruge nogen server overhovedet.
  • kurbade er nemme at debugge med Chrome, da du kan overvåge netværksoperationer, undersøge sideelementer og data, der er forbundet med det.
  • det er lettere at lave en mobilapplikation, fordi udvikleren kan genbruge den samme backend-kode til webebapplikation og indbygget mobilapplikation.
  • SPA kan cache enhver lokal opbevaring effektivt., En applikation sender kun en anmodning, gemmer alle data, så den kan bruge disse data og fungerer endda offline.

ulemper ved applikationen på en enkelt side:

  • det er meget vanskeligt og ikke en let opgave at foretage SEO-optimering af et enkeltsidet program. Dens indhold er indlæst af Aja. (asynkron JavaScript og .ml) — en metode til udveksling af data og opdatering i applikationen uden at opdatere siden.opdatering 27.09.2017: i sin kommentar påpegede Iris Shaffer korrekt, at det også kan gøres på serversiden. Faktisk er det lettere i dag, end det plejede at være.,
  • det er langsomt at do .nloade, fordi tunge klientrammer skal indlæses til klienten.
  • det kræver, at JavaScript er til stede og aktiveret. Hvis en bruger deaktiverer JavaScript i sin bro .ser, vil det ikke være muligt at præsentere applikationen og dens handlinger på en korrekt måde.
    opdatering 27.09.2017: i sin kommentar har Iris Shaffer bemærket, at med isomorf gengivelse / serversidegengivelse kan du allerede gengive siden på serveren. Når den oprindelige gengivelse er på serveren og kan caches, ville deaktivering af JS ikke være en bekymring for at få en gengivet side., Teoretisk set er det rigtigt. Det er klart, at du kan gengive på serversiden. Men mangel på JS kan være en bekymring for andre funktionaliteter. Masser af ting kan gøres i HTML & CSS men fra min erfaring ville det være helvede at gøre det på denne måde i stedet for at bruge JavaScript.
  • sammenlignet med den” traditionelle ” applikation er SPA mindre sikker. På grund af Cross-Site Scripting (.ss), det gør det muligt for angribere at injicere klientsiden scripts i webeb-applikation af andre brugere.,
  • hukommelseslækage i JavaScript kan endda forårsage, at kraftigt system bremser
  • i denne model bliver knapperne tilbage og fremad dysfunktionelle. opdatering 27.09.2017: i dag er det ikke et problem længere.

flersidet applikation

flere sideprogrammer fungerer på en “traditionel” måde. Hver ændring f.eks. Vis data eller indsende data tilbage til server anmodninger rendering en ny side fra serveren i Bro .seren. Disse applikationer er store, større end kurbade, fordi de skal være. På grund af mængden af indhold har disse applikationer mange niveauer af brugergrænseflade., Heldigvis er det ikke et problem længere. Takket være aja.behøver vi ikke bekymre os om, at store og komplekse applikationer skal overføre en masse data mellem server og bro .ser. Denne løsning forbedres, og det giver mulighed for kun at opdatere bestemte dele af applikationen. På den anden side tilføjer det mere kompleksitet, og det er vanskeligere at udvikle end en enkeltsidet applikation.

fordele ved applikationen på flere sider:

  • det er den perfekte tilgang til brugere, der har brug for et visuelt kort over, hvor de skal hen i applikationen., Solid, få niveau menunavigation er en væsentlig del af traditionel flersidet applikation.
  • meget god og let for korrekt SEO ledelse. Det giver bedre chancer for at rangere for forskellige søgeord, da en applikation kan optimeres til et søgeord pr.

ulemper ved flersidet applikation:

  • Der er ingen mulighed for at bruge den samme backend med mobile applikationer. opdatering 27.09.2017: dengang, da jeg skrev denne artikel, havde jeg ikke meget erfaring med backend og med mobile apps., Det er indlysende for mig nu, at du kan bruge den samme backend til begge. Og jeg vil gerne takke alle de læsere, der påpegede det.frontend og backend udvikling er tæt forbundet.
  • udviklingen bliver ret kompleks. Udvikleren skal bruge rammer for enten klient og server side. Dette resulterer i længere tid for applikationsudvikling.

SPA eller MPA?

før du implementerer en webebapplikation, skal du overveje målet med det., Hvis du ved, at du har brug for flere kategorier (fordi du for eksempel driver en online shop eller udgiver meget andet indhold) — Brug et flersidet .ebsted. Hvis du er sikker på, at dit .ebsted er passende til en ren enkeltsideoplevelse-gå efter det. Og hvis du kan lide SPA, men kan bare knap nok passe alt ind i en enkelt side, overveje hybrid site i stedet. Dette er en anden måde, jeg ikke har nævnt før. En hybrid applikation tager det bedste i begge tilgange og forsøger at minimere ulemperne., Det er faktisk en enkelt side applikation, der bruger URL-ankre som syntetiske sider, der muliggør mere i build bro .ser navigation og præferencefunktionalitet. Men dette er emnet for en anden artikel.

måske i fremtiden, vil alle bruge Enkelt side ansøgning model (herunder en hybrid app), da det synes at bringe en masse fordele. Mange apps på markedet migrerer mod denne model. Da nogle projekter simpelthen ikke kan passe ind i SPA, er MPa-modellen stadig levende.

oprindeligt udgivet af pa Originallye Originally Skskilski på neoteric.eu/blog den 1. December 2016.