Acest articol este despre Aplicarea unei singure pagini (SPA). Va lua în considerare avantajele și dezavantajele unei aplicații web bazate pe principiile site-ului de o pagină (SPA)
Ce este SPA?
Aplicație single Page - SPA abreviată, tradusă în limba rusă înseamnă "Aplicarea unei pagini". Cu alte cuvinte, SPA este o aplicație web găzduită pe o singură pagină web care descarcă tot codul necesar pentru lucrare, împreună cu pagina în sine. O aplicație de acest tip a apărut relativ recent, începând cu epoca HTML5, iar SPA este un reprezentant tipic al aplicațiilor pe HTML5.
În cazul în care cererea este destul de complexă și conține un set bogat de caracteristici, cum ar fi sistemul electronic de management al documentelor, numărul de fișiere script poate fi de până la câteva sute, sau chiar mii. Și "... descărcarea tuturor scripturilor ..." nu înseamnă că toate sutele și mii de fișiere cu scripturi vor fi încărcate imediat când site-ul este încărcat. Pentru a rezolva problema încărcării unui număr mare de scripturi în SPA, este apelat un API numit AMD. AMD implementează capacitatea de a descărca scripturi la cerere. Adică dacă aveți nevoie de 3 scripturi pentru "pagina principală" a unui portal de o singură pagină, acestea vor fi descărcate înainte de începerea programului. Și în cazul în care utilizatorul face clic la o altă pagină pe o singură pagină a portalului, de exemplu, „Despre“, AMD modulul de încărcare principiu (script + markup) inainte de a merge la această pagină.
Se pare un pic cam ciupit: "O pagină. o altă pagină, a treia pagină ... un portal de o pagină. " Pune toate punctele deasupra "E". Pagina site-ului care conține toate legăturile către toate CSS-urile și linkurile către scripturile necesare pentru funcționarea SPA-ului, vom numi "pagina Web". Fișier cu pagina este denumit în mod obișnuit „index.html“ (în ASP.NET MVC poate fi index.cshtml sau index.vbhtml sau chiar index.aspx) O pagină care comută în interiorul unui portal de un singur utilizator se numește „module“.
Să analizăm argumentele pro și contra ale acestei abordări. De ce este necesar acest lucru și de ce este atât de popular SPA?
SPA: Pro
Apoi, al doilea "plus" - o interfață de utilizator bogată. așa-numita experiență utilizator. Deoarece pagina web este una, este mult mai ușor să construiți o interfață bogată, bogată. Este mai ușor să stocați informații despre sesiuni, să gestionați stările de vizualizare (vizualizări) și să gestionați animația (în unele cazuri).
SPA: Cons
Componentele SPA
Principiile oricărui cadru (vom vorbi despre ele mai târziu) care implementează paradigma SPA ar trebui să respecte următoarele concepte și definiții:
- SPA acceptă navigarea clientului. Toate „pe jos“ Pagini module utilizator înregistrat în mod unic în istoria navigației, și navigare în acest caz este „profund“, adică, în cazul în care un utilizator de copii și va deschide un link către o pagină de modul intern într-o altă fereastră a browserului sau, el este dus la pagina corespunzătoare.
- SPA este găzduită pe o pagină web, ceea ce înseamnă că toate lucrările necesare site-ului (portalului), scripturile și stilurile ar trebui să fie definite într-un singur loc al proiectului - pe o singură pagină web.
- SPA stochează starea (variabilele importante) ale clientului (script-ul client) permanent în memoria cache a browser-ului sau în Web Storage.
- SPA încarcă toate scripturile necesare pentru a porni aplicația când pagina web este inițializată.
- Modulele SPA treptat podgruzhaet la cerere.
SPA șabloane
După cum probabil ați ghicit deja, SPA este un concept abstract. Acesta este principiul arhitecturii aplicației. Hai să vorbim de unde să începem atunci când dezvoltăm un site pe principiile SPA.
Există un număr mare de biblioteci de bază (cadru - din cadrul cuvântului în limba engleză - "cadru, structură, cadru") care implementează principiul aplicării unei pagini unice. Ce oferă aceste cadre:
- să ofere principii de bază pentru dezvoltarea SPA, minimizând costurile forței de muncă pentru rezolvarea sarcinilor universale (a se vedea secțiunea "Componentele APS");
- cadre create de comunitatea de dezvoltatori, ceea ce înseamnă că folosesc experiența de a crea site-uri web ale multor programatori;
- cadrele de lucru reprezintă punctul de plecare pentru crearea unei structuri bazate pe aplicația Single Page.
Din moment ce am lucrat pe platforma NET de mulți ani, voi lua în considerare șabloanele aplicației Single Page bazate pe ASP.NET. Să ne uităm la următorul tabel comparativ.
Compararea capabilităților șabloanelor SPA
Tabelul prezintă cele mai comune șabloane pentru construirea aplicației pentru o singură pagină. Notă fundal albastru izolate blocuri de construcție de bază pentru construirea unui cadru complet, cum ar fi DurandalJS și HotTowel, care sunt evidențiate în verde.
Prin urmare, urmând datele furnizate în tabel, puteți crea o aplicație pentru o singură pagină utilizând aplicațiile "goale" ASP.NET și KnockoutJS. Cu toate acestea, va trebui să scrieți, însă, implementarea lucrării privind datele (DAL), precum și gestionarea istoricului navigației și navigației, printre altele.
Pe de altă parte, aveți dreptul de a alege sau de Ember BreezeJS, sau AngularJS chiar Google ca baza site-ul sau chiar ca baza său cadru propriu, este mai puțin adevărat că principiile componentelor lipsă ale conceptului SPA trebuie sa te vinzi.
O alternativă la soluția anterioară poate servi drept alegerea unui cadru gata pregătit (marcat în tabelul cu fundal verde). Fiecare opțiune are propriile sale "plusuri" și "contra".
concluzie
Există o mulțime de exemple de aplicații construite folosind principiile aplicației pentru o singură pagină. Unul dintre cele mai puternice și bine-cunoscute este GMail - serviciul de poștă electronică al Google.
Vreau să citez, de exemplu, serviciul de citire RSS SilverReader pentru un singur motiv simplu: acest serviciu este realizat folosind cadrul DurandalJS. Și acesta este cadrul pe care l-am construit pentru site-ul meu "Ce înseamnă acest nume?".