Avatar billede razmuz_dk Nybegynder
07. februar 2006 - 15:40 Der er 1 kommentar og
1 løsning

Flersproget hjemmeside - performance

Jeg skal til at omskrive mit website, således at det kan vises på flere sprog. Jeg har valgt at bruge en mysql-tabel til at gemme alt tekst i. Tekst-databasen har følgende kolonner:
record_id,text_id,language_id,text

Mit spørgsmål går på hvordan jeg rent arkitektonisk skal opbygge siden. Sagen er den, at siden er meget dynamisk - og en bestemt fil, fx post.php, kan udskrive mange forskellige tekster alt efter om man er i færd med fx at slette post eller skrive et brev.
Jeg vil jo helst hente tekst fra mysql så få gange som muligt pr. sidevisning, men jeg vil heller ikke hente for meget tekst, som måske ikke bliver brugt på siden, da dette kan gå hen og æde for mange ram.

Jeg har skrevet en lille "text-loader-klasse", som håndterer teksterne. Den anvender
SELECT text FROM site_texts WHERE language_id = '1' AND text_id  IN (1, 2, 3)
til at hente teksten ud med. Dette kald bliver kørt i min header-fil og henter den "obligatoriske" tekst som ALTID skal vises (fx menupunkt-teksterne og den tekst som den givne side altid skal vise). Men som nævnt bliver tekster som "Du indtastede forkert login" jo ikke altid vist på login-siden fx. Så derfor er det ikke særlig smart at hente denne tekst hver gang, hvis den ikke skal bruges!

Og menuen bliver printet før "korrekt-login-tjekket" udføres, så derfor kan jeg ikke hente "Du indtastede forkert login"-teksten sammen med de andre tekster men er nødt til at gøre det i et "senere kald" - dette medfører jo af gode grunde flere kald til mysql-tabellen hvilket er negativt, da det tager ekstra tid.

Så er spørgsmålet:
Er det bedst at hente samtlige tekster som MULIGVIS bliver vist på en given side? Det vil putte en masse tekster ind i et stooort array som vil spise ram - tekster som måske ikke engang skal anvendes til at vise den side brugeren anmoder om.
Eller er det bedre at søge efter tekster 2-5 gange alt efter hvilken tekst man får behov for i takt med at scriptet gennemløbes?

Eller allerbedst: findes der en anden alternativ måde, som gør at man kun skal hente teksterne én gang- og at man kun henter de tekster man har behov for?

Idéer/forslag er meget meget velkomne.

Jeg beklager at spørgsmålet er blevet lidt rodet, men jeg synes det ret svært at forklare.

På forhånd tak.
Avatar billede jackass- Nybegynder
07. februar 2006 - 15:56 #1
Jeg vil klart mene: hent det tekst du skal bruge - når du skal bruge det.
Avatar billede razmuz_dk Nybegynder
13. februar 2006 - 20:53 #2
Ikke lige et helt så uddybende svar, som jeg havde håbet på. Men tak for hjælpen.
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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