Andre Måter å SPAs

0
14

Som rhymed lolz.

Jeg nevnte på en podcast den andre dagen at jeg sorta tror WordPress bør skip med Turbolinks. Det er en ganske enkel premiss:

  1. Bygge en server-gjengitt nettstedet.
  2. Turbolinks avskjærer klikker på samme opprinnelse lenker.
  3. Den bruker AJAX for HTML av den nye siden, og erstatter gjeldende side med det nye.

Med andre ord, å slå en server-gjengitt app i “Enkelt Side App” (SPA) ved hjelp av å legge til dette biblioteket.

Hvorfor bry seg? Det kan være litt raskere. Hele siden lastes inn på nytt kan føles treg i forhold til et SPA. Turbolinks er litt “gammel” teknologi, men det er likevel ganske nyttig. Faktisk, Starr Horne skrev nylig en flott blogginnlegg om overføring til det på Honeybadger:

Honeybadger er ikke en enkelt side-appen, og det vil sannsynligvis aldri bli. SPAs bare ikke gir mening for våre tekniske krav. Ta en titt:

  • Våre app-er for det meste om å vise sider av statisk informasjon.
  • Vi crunch en masse data for å generere en enkelt feil rapport side.
  • Vi har et veldig lite team av fire utviklere, og slik vi ønsker å holde våre codebase som små og enkle som mulig.

… Det er en tilnærming vi har vært med i flere år som lar oss har vår kaken og spise den også … og den store ideen er at du kan få SPA-liker fart uten JavaScript.

Det er hva jeg mener om WordPress. Det er veldig bra at det er server-gjengitt som standard, men det kan også dra nytte av SPA-ting med en enkel tilnærming som Turbolinks. Du kan alltid legge det til på egen hånd om.

Bare å forlate serveren din-gjengitt nettstedet er ikke en forferdelig ting. Hvis du holde sidene lys og ressurser bufret, er du sannsynligvis fine.

Chrome har startet noen nye ideer:

  • “Maling Holder” reduserer den hvite flash mellom side lastes inn.
  • I “Portal” – element vil bidra til overgang fra side-til-side uten å laste. Merk tilgjengelighetsproblemer.

Jeg tviler ikke på denne server-gjengitt men styrke-til-SPA er det som har bidratt til å popularisere tilnærminger som Neste og Gatsby.

Jeg ønsker ikke å rabatt kraft av en “real” SPA-tilnærming. Nettverket er den viktigste gjerningsmannen for trege nettsider, slik at hvis en app er architected å skyte over relativt små biter av data (snarere relativt tunge, store deler av HTML-koden) og deretter beregne den minste mengden av DOM det kan re-gjengi og gjøre det, så det er ganske fantastisk. Vel, det er, til flaskehals blir JavaScript for seg selv.

Det er bare uheldig at et SPA tilnærming er ofte gjort på bekostning av å gjøre ingen server-side rendering i det hele tatt. Og på samme måte er uheldig at kostnaden for “god” en server-gjengitt app til å bli et SPA kommer på bekostning av å binde opp den viktigste tråden i JavaScript.

Forbannet hvis du gjør det. Forbannet hvis du ikke gjør det.

Heldigvis, det er et spekter av gjengivelse valg for å velge en passende arkitektur.