16. juni 2021 - 12:51Der er
8 kommentarer og 1 løsning
Erstatning af en lang række ord i en tekst
Set fra brugerens perspektiv: Brugeren henter en langt tekst, som vedkommende læser. Nogle af ordene i teksten er understreget. Ved at føre musen over disse ord popper yderligere informationer i relation til ordet op.
Teknisk: Jeg har en tabel i en database indeholdende en lang række ord samt yderligere information. Den lange tekst hentes fra en anden tabel. Fx erstattes ordet "cykel" med "<span class="info" data="2">cykel</span>, hvor tallet 2 er ordet id i databasen. Jeg bruger jquery til at hente teksten fra databasen, når brugeren fører musen over ordet.
Hvordan løses det? Jeg kunne hente alle ordene i databasen, lave en løkke der laver en søg/erstat ved brug af regulære udtryk i den lange tekst og så efterfølgende servere teksten for brugeren. Jeg er bare i tvivl om, hvorvidt det er den mest fornuftige løsning, eller der er en metode jeg ikke har overvejet, som vil være mindre krævende for serveren.
#1: Men så kommer det vel også an på, om der i forhold til brugere er nogle spidsbelastninger (med mange brugere). For hvis der er det, kan der vel godt være noget med, at det i sådanne situationer alt andet lige er en fordel at køre det hos klienten. Mens det vel i lavintensitetsperioder alt andet lige er en fordel at køre det hos serveren?
Så derfor er det vel lidt svært at lave en ordentlig sammenligning i et udviklingsmiljø...
Enten kan du (a) hente alle ordene i tabellen (antag der er M ord i tabellen) og søge efter hvert ord i teksten (antag der er N ord i teksten) eller (b) du kan søge i tabellen efter efter alle ord i teksten.
(a) er det, du beskriver, og giver M "php søgninger" i teksten
(b) giver N sql søgninger i tabellen
Mit gæt er, at M >> N, og hvis det er rigtigt, gætter jeg på, at (b) er hurtigere end (a).
Det ændrer så spørgsmålet til om M "php søgninger" i teksten er hurtigere end N sql søgninger i tabellen, når M << N. Hvilket i min optik er sværere at svare på.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.