Dino Esposito: Razvoj modernih web aplikacija. Analiza predmetnih područja i tehnologija. Ne rušite povijest, poboljšajte je. Ispitivanje i probni rad

Nedavno, uglavnom u odnosu na UX i performanse.

Želim predstaviti 7 djelotvornih načela za web stranice koje žele koristiti JavaScript za upravljanje svojim korisničkim sučeljem. Ova su načela rezultat mog rada kao web dizajnera, ali i kao dugogodišnjeg korisnika WWW-a.

JavaScript je nedvojbeno postao nezamjenjiv alat za front-end programere. Sada se njegov opseg širi na druga područja, kao što su poslužitelji i mikrokontroleri. Ovaj programski jezik odabrala su prestižna sveučilišta za podučavanje studenata osnovama informatike.

Istodobno, postoji niz pitanja u vezi s njegovom ulogom i specifična uporaba, na koje je mnogima teško odgovoriti, uključujući i autore okvira i biblioteka.

  • Treba li se JavaScript koristiti kao zamjena za značajke preglednika: povijest, navigaciju, renderiranje?
  • Umire li pozadina? Trebam li uopće prikazati HTML?
  • Je li istina da su Single Page Applications (SPA) budućnost?
  • Treba li JS generirati stranice na web stranici i prikazati stranice u web aplikacijama?
  • Trebam li koristiti tehnike kao što su PJAX ili TurboLinks?
  • Koja je točna razlika između web stranice i web aplikacije? Treba li ostati jedan?

Ono što slijedi je moj pokušaj da odgovorim na ova pitanja. Pokušao sam istražiti kako koristiti JavaScript iz korisničke perspektive (UX). Posebno je posebnu pozornost posvetio ideji minimaliziranja vremena potrebnog korisniku za dobivanje podataka koji ga zanimaju. Počevši od osnova mrežne tehnologije a završava s predviđanjem budućeg ponašanja korisnika.

1. Prikaz stranica na poslužitelju nije obavezan

tl;DR: Renderiranje na poslužitelju nije učinjeno za SEO, već za performanse. Razmotrite dodatne zahtjeve za skripte, stilove i naknadne API zahtjeve. U budućnosti razmislite o korištenju HTTP metoda 2.0 pritisak.

Prije svega, moram istaknuti uobičajenu pogrešku odvajanja "aplikacija koje prikazuje poslužitelj" od "Aplikacija na jednoj stranici". Ako želimo postići najbolje iskustvo s korisnikove točke gledišta, tada se ne bismo trebali ograničiti takvim granicama i napustiti jednu alternativu u korist druge.

Razlozi su sasvim očiti. Stranice se prenose preko Interneta, koji ima fizička ograničenja, kao što je Stuart Cheshire nezaboravno ilustrirao u svom poznatom eseju "To je latencija, glupane":

Udaljenost između Stanforda i Bostona je 4320 km.
Brzina svjetlosti u vakuumu je 300 x 10^6 m/s.
Brzina svjetlosti u optičkom vlaknu je približno 66% brzine svjetlosti u vakuumu.
Brzina svjetlosti u optičkom vlaknu je 300 x 10^6 m/s * 0,66 = 200 x 10^6 m/s.
Kašnjenje jednosmjernog prijenosa do Bostona 4320 km / 200 x 10^6 m/s = 21,6 m/s.
Kašnjenje povratne vožnje je 43,2 m/s.
Ping od Stanforda do Bostona na modernom internetu je oko 85 ms (…)
Dakle, moderna internetska oprema prenosi signal brzinom od 0,5 brzine svjetlosti.

Navedeni rezultat od 85 ms može se poboljšati (i već je nešto bolji), no važno je razumjeti da postoji fizičko ograničenje kašnjenja u prijenosu informacija putem interneta, bez obzira koliko se povećala propusnost na korisničkim računalima .

Ovo je posebno važno zbog sve veće popularnosti JavaScript aplikacija koje obično sadrže samo oznake.