Aplicațiile Web sunt involuntar înlocuirea vechilor aplicatii desktop. Ele sunt mai convenabile de utilizat, sunt ușor de Actualizat și nu sunt legate de un singur dispozitiv. Și chiar dacă utilizatorii trec ușor de la aplicațiile web bazate pe browser la cele mobile, Cererea de aplicații complexe și rafinate este deja imensă și este în continuă creștere., Dacă vă gândiți să vă creați propria aplicație, probabil că ați auzit că există două modele principale de design pentru aplicațiile web: aplicație cu mai multe pagini (MPA) și aplicație cu o singură pagină (SPA). Și, desigur, ambele modele au argumente pro și contra.înainte de a începe să vă transformați ideea în aplicația reală, trebuie să răspundeți la o grămadă de întrebări importante. Pentru a decide ce model de aplicație este mai bun pentru dvs., ar trebui să urmați abordarea content-first, care subliniază importanța de a pune conținutul aplicației dvs. înainte de orice altceva., Acest lucru se datorează faptului că conținutul este principalul motiv pentru care utilizatorii vor folosi sau nu aplicația. Și acest lucru ne conduce la cele mai importante întrebări: ce conținut doriți să prezentați și ce conținut le va păsa cel mai mult utilizatorilor dvs.există multe argumente pro și contra de SPA, precum și de MPA. Sper că liniile de mai jos vor clarifica diferențele dintre aceste două modele de design și vă vor aduce mai aproape de punctul în care veți ști ce fel de aplicație se potrivește mai mult ideii dvs. Și faceți-vă ideea despre propria aplicație să devină realitate.,o aplicație cu o singură pagină este o aplicație care funcționează în interiorul unui browser și nu necesită reîncărcarea paginii în timpul utilizării. Utilizați acest tip de aplicații în fiecare zi. Acestea sunt, de exemplu: Gmail, Google Maps, Facebook sau GitHub.
Spa – urile se referă la servirea unui UX remarcabil, încercând să imite un mediu „natural” în browser — fără reîncărcări de pagini, fără timp suplimentar de așteptare. Este doar o pagină web pe care o vizitați, care apoi încarcă toate celelalte conținuturi folosind JavaScript — de care depind foarte mult.,

SPA solicită marcarea și datele în mod independent și face pagini direct în browser. Putem face acest lucru datorită cadrelor avansate JavaScript, cum ar fi AngularJS, Ember.JS, Meteor.JS, Knock-Out.J. S.
site-urile cu o singură pagină ajută la menținerea utilizatorului într-un spațiu web confortabil, unde conținutul este prezentat utilizatorului într-un mod simplu, ușor și funcțional.

Pro-urile aplicației cu o singură pagină:

  • SPA este rapid, deoarece majoritatea resurselor (HTML+CSS+scripturi) sunt încărcate o singură dată pe toată durata de viață a aplicației. Numai datele sunt transmise înainte și înapoi.,
  • dezvoltarea este simplificată și raționalizată. Nu este nevoie să scrieți cod pentru a reda pagini pe server. Este mult mai ușor să începeți, deoarece, de obicei, puteți începe dezvoltarea dintr-un fișier://URI, fără a utiliza niciun server.
  • spa-urile sunt ușor de depanat cu Chrome, deoarece puteți monitoriza operațiunile de rețea, investiga elementele paginii și datele asociate cu acesta.
  • este mai ușor de a face o aplicație mobilă, deoarece dezvoltatorul poate reutiliza același cod backend pentru aplicații web și aplicații mobile native.
  • SPA poate cache orice stocare locală în mod eficient., O aplicație trimite o singură Solicitare, stochează toate datele, apoi poate utiliza aceste date și funcționează chiar și offline.

contra aplicației cu o singură pagină:

  • este foarte complicat și nu este o sarcină ușoară de a face optimizarea SEO a unei aplicații cu o singură pagină. Conținutul său este încărcat de AJAX (JavaScript asincron și XML) – o metodă de schimb de date și actualizare în aplicație fără a reîmprospăta pagina.
    actualizare 27.09.2017: în comentariul ei, Iris Shaffer a subliniat corect că se poate face și pe partea serverului. Într-adevăr, este mai ușor astăzi decât era.,
  • este lent pentru a descărca, deoarece cadrele de client grele sunt necesare pentru a fi încărcate la client.
  • este nevoie de JavaScript pentru a fi prezent și activat. Dacă un utilizator dezactivează JavaScript în browserul său, nu va fi posibilă prezentarea corectă a aplicației și a acțiunilor sale.
    actualizare 27.09.2017: în comentariul ei, Iris Shaffer a observat că, cu randarea izomorfă / redarea din partea serverului, puteți face deja pagina pe server. Când redarea inițială este pe server și poate fi stocată în cache, dezactivarea JS nu ar fi o preocupare pentru obținerea unei pagini randate., Teoretic, așa este. Evident, puteți face pe partea de server. Dar lipsa de JS poate fi o preocupare pentru alte funcționalități. O mulțime de lucruri se pot face în HTML & CSS, dar din experiența mea ar fi iad să o fac în acest fel în loc să folosesc JavaScript.
  • comparativ cu aplicația” tradițională”, SPA este mai puțin sigur. Datorită Cross-Site Scripting (XSS), permite atacatorilor să injecteze Scripturi din partea clientului în aplicații web de către alți utilizatori.,
  • scurgeri de memorie în JavaScript poate provoca chiar sistem puternic pentru a încetini
  • în acest model, butoanele Înapoi și înainte devin disfuncționale.
    actualizare 27.09.2017: în zilele noastre, nu mai este o problemă.

aplicație cu mai multe pagini

aplicațiile cu mai multe pagini funcționează într-un mod „tradițional”. Fiecare schimbare de ex. afișați datele sau trimiteți datele înapoi la cererile serverului, redând o nouă pagină de pe server în browser. Aceste aplicații sunt mari, mai mari decât spa-urile, deoarece trebuie să fie. Datorită cantității de conținut, aceste aplicații au multe niveluri de UI., Din fericire, nu mai este o problemă. Datorită AJAX, nu trebuie să ne facem griji că aplicațiile mari și complexe trebuie să transfere o mulțime de date între server și browser. Această soluție se îmbunătățește și permite reîmprospătarea numai a anumitor părți ale aplicației. Pe de altă parte, adaugă mai multă complexitate și este mai dificil de dezvoltat decât o aplicație cu o singură pagină.

Pro-urile aplicației cu mai multe pagini:

  • este abordarea perfectă pentru utilizatorii care au nevoie de o hartă vizuală unde să meargă în aplicație., Solid, câteva nivel de navigare meniu este o parte esențială a aplicației tradiționale cu mai multe pagini.
  • foarte bun și ușor pentru un management SEO adecvat. Acesta oferă șanse mai bune de a rang pentru cuvinte cheie diferite, deoarece o aplicație poate fi optimizat pentru un singur cuvânt cheie pe pagină.

contra aplicației cu mai multe pagini:

  • Nu există nicio opțiune de a utiliza același backend cu aplicațiile mobile.
    UPDATE 27.09.2017: pe atunci, când scriam acest articol, nu aveam prea multă experiență cu backend-ul și cu aplicațiile mobile., Este evident pentru mine acum că puteți utiliza același backend pentru ambele. Și aș dori să mulțumesc tuturor cititorilor care au subliniat asta.
  • dezvoltarea Frontend și backend sunt strâns cuplate.dezvoltarea devine destul de complexă. Dezvoltatorul trebuie să utilizeze cadre pentru client și server. Acest lucru duce la o perioadă mai lungă de dezvoltare a aplicațiilor.

SPA sau MPA?

înainte de a implementa o aplicație web, trebuie să luați în considerare obiectivul acesteia., Dacă știți că aveți nevoie de mai multe categorii (pentru că, de exemplu, rulați un magazin online sau publicați o mulțime de alte conținuturi) — utilizați un site cu mai multe pagini. Dacă sunteți sigur că site-ul dvs. este potrivit pentru o experiență pură cu o singură pagină — mergeți pentru el. Și dacă vă place SPA, dar abia se poate potrivi totul într-o singură pagină, ia în considerare site-ul hibrid în schimb. Acesta este un alt mod pe care nu l-am menționat înainte. O aplicație hibridă ia ceea ce este cel mai bun în ambele abordări și încearcă să minimizeze dezavantajele., Este, de fapt, o aplicație cu o singură pagină care folosește ancore URL ca pagini sintetice care permit mai mult în navigarea browserului și funcționalitatea preferințelor. Dar acesta este subiectul unui alt articol.poate că în viitor, toată lumea va folosi modelul de aplicație cu o singură pagină (inclusiv o aplicație hibridă), deoarece pare să aducă o mulțime de avantaje. Multe aplicații de pe piață migrează spre acest model. Cu toate acestea, deoarece unele proiecte pur și simplu nu se pot încadra în SPA, modelul MPA este încă viu.

publicat inițial de Paweł Skólski la neoteric.eu/blog pe 1 decembrie 2016.