Innlegg
I en enkeltsidig applikasjon, bør jeg behandle på klienten eller serveren?
27. desember 2015 • 2 min lesing
Et av salgspunktene for Single Page Application (SPA) var å overføre arbeid som tradisjonelt ble utført på serveren til klienten. Jeg mener at SPA har levert på dette løftet.
Imidlertid er det ikke bare roser. Det er lett å bli for ivrig og skyve for mye arbeid til klienten. Vi glemmer ofte at vi ikke kan kontrollere klientens miljø — klienten kan være alt fra en ti år gammel maskin til den nyeste smarttelefonen med tilgang til varierende internetthastighetene. Det eneste vi kan stole på er at brukeren ser nettstedet vårt i en nettleser.
Behandling
I min erfaring er intensiv behandling og data som trenger konsistens mellom serveren og klienten, som datokonverteringer eller data som krever presise beregninger, som penger, gode kandidater for gjengivelse på serversiden.
Paginering
En vanlig oppgave som utføres på klienten er paginering. Med små datasett fungerer dette flott; imidlertid forblir små datasett aldri små. Når data vokser, blir applikasjonen tregere og blir til slutt uresponsiv. Dessverre vet du ikke at det skjer fordi det er på klienten, og enda verre, det oppstår ikke på alle klienter, noe som gjør det vanskelig å feilsøke.
Hvis du flytter paginering fra klienten til serveren, vil det lindre pagineringsrelaterte ytelsesproblemer på klienten. Du tenker kanskje: “men nå gjør jeg en masse API-kall. Å gjøre så mange API-kall virker ikke optimalt.” Sant, det virker slik, men du vil bli overrasket over hvor raskt dataene dine returneres fra serveren. Og det beste? Du kontrollerer serveren og kan øke kapasiteten etter behov.
Til slutt vil du gi brukeren en rik og responsiv opplevelse, og noen ganger betyr det å la serveren gjøre det tunge løftet.
Sammendrag
Oppsummert, når det er mulig, vil vi overføre arbeid til klienten, men ved å gjøre det, kan vi raskt overbelaste klienten. Å holde vanskelige oppgaver som paginering og intensiv behandling på serveren kan beskytte oss fra å overbelaste klienten.
Forfatter: Chuck Conway er en AI-ingeniør med nesten 30 års erfaring innen programvareutvikling. Han bygger praktiske AI-systemer—innholdspipelines, infrastrukturagenter og verktøy som løser virkelige problemer—og deler det han lærer underveis. Koble til ham på sosiale medier: X (@chuckconway) eller besøk ham på YouTube og på SubStack.