Avatar billede AnyFellow Juniormester
16. juni 2021 - 12:51 Der 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.

Nogle forslag?
Avatar billede arne_v Ekspert
16. juni 2021 - 14:43 #1
Du kan gøre det server side (PHP) eller gøre det client side (JavaScript).

Det er et valg.

Du kan evt. lave en lille sammenlignende test inden du træffer valget.
Avatar billede ejvindh Guru
16. juni 2021 - 19:53 #2
#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ø...
Avatar billede AnyFellow Juniormester
16. juni 2021 - 20:12 #3
#2 Der vil maksimalt være 50-75 brugere på serveren, så belastningen er nok ikke så vigtig. Jeg tænker eksekveringstiden nok er væsentligere.

Den må jeg prøve at teste både ved server eller klientløsningen.
Avatar billede acore Ekspert
17. juni 2021 - 10:14 #4
Er der ikke også en anden overvejelse?

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).
Avatar billede AnyFellow Juniormester
17. juni 2021 - 12:34 #5
#4 Det kunne afgjort være en overvejelse, jeg ikke lige havde gjort. Teksten er dog så lang, at løsning (b( ville give flere søgninger end (a).
Avatar billede acore Ekspert
17. juni 2021 - 13:29 #6
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å.
Avatar billede AnyFellow Juniormester
17. juni 2021 - 14:52 #7
Jeg tænker at løsning (a) vil være hurtigst, her hentes ordene i et kald og teksten traveres x antal gange.

Ved løsning (b) vil der skulle laves et kald til databasen for hvert ord, samtidig med at teksten skal splittes og traveres.
Avatar billede acore Ekspert
17. juni 2021 - 15:25 #8
Split af teksten er hurtig - med explode(...). Tabellen er indekseret. Tjaaa..

Du kunne jo ret let tage tid på  (a) et kald til databasen efter et ord (tN msek) og (b) en søgning i teksten efter et ord (tM msek).

Hvis du har et repræsentativt antal ord i både tabel (M) og tekst (N), skal du se på

Løsning a: tM x M
Løsning b: tN x N

Som altid - hurtigste vinder ;)
Avatar billede AnyFellow Juniormester
18. juni 2021 - 08:04 #9
Enig, tak for deltagelsen.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Tech-giganters regnskaber overgik forventningerne, men investorerne frygter for fremtiden
Computerviews: De store tech-giganter har igen haft et kvartal med massiv vækst. Men selskabernes regnskaber blev modtaget køligt på aktiemarkeder, der frygter, at tiden efter coronakrisen vil byde på lavere vækstrater.
Computerworld
Hent opdateringerne nu: Apple lapper gabende sikkerhedshuller til iPhone, iPad og Mac
En sårbarhed gjorde det muligt for hackere at overtage kontrollen med din iPhone, iPad eller Mac. Det er 13. gang i år, at Apple lukker en nuldagssårbarhed.
CIO
Årets CIO 2021: Nu skal Danmarks dygtigste CIO findes - er det dig? Eller kender du en, du vil indstille?
Det er den mest eftertragtede titel for danske it-chefer og CIO'er, der er på spil, når Årets CIO kåres 16. september 2021. Søg selv eller prik til en, som du kender - og læs mere om prisen her.
Job & Karriere
Så meget kan du tjene: Disse stillinger giver den højeste løn i den danske it-branche lige nu
Du skal have ledelsesansvar, hvis du vil helt tops i lønhierakiet i den danske it-branche, viser nye tal. Se hvor meget du kan tjene i de stillinger i it-branchen, der giver den højeste månedsløn lige nu.
White paper
Sådan får du maksimal værdi af serverudskiftning i SMV-organisationen
I denne analyse får du viden om, hvornår du udskifter hardware i den mellemstore virksomhed, så du optimerer værdien af både den eksisterende og kommeunde investering.