webbapplikationer ersätter omedvetet de gamla skrivbordsprogram. De är bekvämare att använda, de är lätta att uppdatera, och de är inte bundna till en enhet. Och även om användarna försiktigt flyttar från webbläsarbaserade webbapplikationer till de mobila, är efterfrågan på komplexa och raffinerade appar redan enorm och växer fortfarande., Om du funderar på att skapa din egen applikation har du förmodligen hört att det finns två huvuddesignmönster för webbappar: flersidig applikation (MPa) och ensidig applikation (SPA). Och naturligtvis har båda modellerna sina fördelar och nackdelar.

innan du börjar göra din idé till den verkliga applikationen måste du svara på en massa viktiga frågor. För att bestämma vilken appmodell som är bättre för dig bör du följa innehållsförsta tillvägagångssätt, vilket betonar vikten av att sätta ditt applikationsinnehåll före allt annat., Det beror på att innehåll är den främsta orsaken till vilka användare kommer eller inte kommer att använda programmet. Och detta leder oss till de viktigaste frågorna: vilket innehåll vill du presentera och vilket innehåll dina användare kommer att bry sig om mest.

det finns många fördelar och nackdelar med SPA samt mpa. Jag hoppas att linjerna nedan kommer att rensa skillnaderna mellan dessa två designmönster och ta dig närmare den punkt där du kommer att veta vilken typ av applikation som passar din idé mer. Och gör din idé om egen ansökan besannas.,

en enkelsidig applikation är en app som fungerar i en webbläsare och inte kräver sidladdning under användning. Du använder denna typ av program varje dag. Dessa är till exempel: Gmail, Google Maps, Facebook eller GitHub.
Spa handlar om att betjäna en enastående UX genom att försöka imitera en ”naturlig” miljö i webbläsaren — ingen sida laddas om, ingen extra väntetid. Det är bara en webbsida som du besöker som sedan laddar allt annat innehåll med JavaScript — som de är starkt beroende av.,

SPA begär uppmärkning och data oberoende och gör sidor raka i webbläsaren. Vi kan göra detta tack vare de avancerade JavaScript ramverk som AngularJS, Ember.JS, Meteor.JS, Knockout.js .
enkelsidiga webbplatser hjälper till att hålla användaren i ett, bekvämt webbutrymme där innehållet presenteras för användaren på ett enkelt, enkelt och fungerande sätt.

proffsen av en sida ansökan:

  • SPA är snabb, eftersom de flesta resurser (HTML+CSS+skript) endast laddas en gång under hela livslängden för ansökan. Endast data överförs fram och tillbaka.,
  • utvecklingen förenklas och rationaliseras. Det finns ingen anledning att skriva kod för att göra sidor på servern. Det är mycket lättare att komma igång eftersom du vanligtvis kan sparka av utveckling från en filfil: / / Uri, utan att använda någon server alls.
  • Spa är lätta att felsöka med Chrome, eftersom du kan övervaka nätverksoperationer, undersöka sidelement och data som är associerade med den.
  • Det är lättare att göra en mobil applikation eftersom utvecklaren kan återanvända samma backend-kod för webbapplikation och inbyggd mobil applikation.
  • SPA kan cache alla lokala lagring effektivt., Ett program skickar bara en begäran, lagra alla data, då kan den använda dessa data och fungerar även offline.

nackdelar med en sida ansökan:

  • Det är mycket knepigt och inte en lätt uppgift att göra SEO optimering av en enda sida ansökan. Dess innehåll laddas av Ajax (asynkron JavaScript och XML) — en metod för utbyte av data och uppdatering i programmet utan att uppdatera sidan.
    uppdatering 27.09.2017: i sin kommentar påpekade Iris Shaffer korrekt att det också kan göras på serversidan. Det är faktiskt lättare idag än det brukade vara.,
  • Det är långsamt att ladda ner eftersom tunga klientramar krävs för att laddas till klienten.
  • Det kräver att JavaScript är närvarande och aktiverat. Om någon användare inaktiverar JavaScript i sin webbläsare, Det kommer inte att vara möjligt att presentera program och dess åtgärder på ett korrekt sätt.
    uppdatering 27.09.2017: i sin kommentar, Iris Shaffer har märkt att med isomorphic rendering / serversidan rendering, du kan göra sidan på servern redan. När den ursprungliga render är på servern och kan cachas, inaktivera JS skulle inte vara ett problem för att få en renderad sida., Teoretiskt sett stämmer det. Självklart kan du göra på serversidan. Men brist på JS kan vara ett bekymmer för andra funktioner. Massor av saker kan göras i HTML & CSS men från min erfarenhet skulle det vara helvete att göra det på detta sätt istället för att använda JavaScript.
  • jämfört med den ”traditionella” ansökan är SPA mindre säkert. På grund av Cross-Site Scripting (XSS), det gör det möjligt för angripare att injicera klientsidan skript i webbapplikation av andra användare.,
  • minnesläcka i JavaScript kan till och med orsaka ett kraftfullt system att sakta ner
  • i den här modellen blir bak-och framåtknappar dysfunktionella.
    uppdatering 27.09.2017: numera är det inte ett problem längre.

flersidiga program

flersidiga program fungerar på ett ”traditionellt” sätt. Varje förändring t.ex. visa data eller skicka data tillbaka till serverbegäranden som gör en ny sida från servern i webbläsaren. Dessa applikationer är stora, större än Spa eftersom de behöver vara. På grund av mängden innehåll har dessa applikationer många nivåer av användargränssnitt., Lyckligtvis är det inte ett problem längre. Tack vare AJAX behöver vi inte oroa oss för att stora och komplexa applikationer måste överföra mycket data mellan server och webbläsare. Denna lösning förbättras och det gör det möjligt att uppdatera endast vissa delar av ansökan. Å andra sidan, Det lägger till mer komplexitet och det är svårare att utveckla än en enda sida ansökan.

fördelar med flersidiga program:

  • Det är den perfekta metoden för användare som behöver en visuell karta över var att gå i programmet., Solid, få nivå menynavigering är en viktig del av traditionell flersidig applikation.
  • mycket bra och lätt för korrekt SEO-hantering. Det ger bättre chanser att rangordna för olika sökord eftersom ett program kan optimeras för ett sökord per sida.

nackdelar med flera sidor ansökan:

  • Det finns inget alternativ att använda samma backend med mobila applikationer.
    uppdatering 27.09.2017: då, när jag skrev den här artikeln, hade jag inte mycket erfarenhet av backend och med mobilappar., Det är uppenbart för mig nu att du kan använda samma backend för båda. Och jag vill tacka alla läsare som påpekade det.
  • Frontend och backend utveckling är tätt kopplade.
  • utvecklingen blir ganska komplex. Utvecklaren behöver använda ramar för antingen klient-och serversidan. Detta resulterar i den längre tiden för applikationsutveckling.

SPA eller mpa?

innan du distribuerar en webbapplikation måste du överväga målet med det., Om du vet att du behöver flera kategorier (eftersom du till exempel kör en webbutik eller publicerar mycket annat innehåll) — använd en webbplats med flera sidor. Om du är säker på att din webbplats är lämplig för en ren enkelsidig upplevelse-gå för det. Och om du gillar SPA men kan bara knappt passa allt i en enda sida, överväga hybridplatsen istället. Detta är ett annat sätt som jag inte har nämnt tidigare. En hybridapplikation tar vad som är bäst i båda tillvägagångssätten och försöker minimera nackdelarna., Det är i själva verket en enda sida program som använder URL ankare som syntetiska sidor som möjliggör mer i bygga webbläsare navigering och preferens funktionalitet. Men det här är ämnet för en annan artikel.

kanske i framtiden kommer alla att använda ensidig applikationsmodell (inklusive en hybridapp), eftersom det verkar ge många fördelar. Många appar på marknaden migrerar mot denna modell. Men eftersom vissa projekt helt enkelt inte passar in i SPA, är mpa-modellen fortfarande levande.

ursprungligen publicerad av Paweł Skólski på neoteric.eu/blog den 1 December 2016.