Avatar billede 7th Praktikant
27. oktober 2003 - 14:56 Der er 8 kommentarer og
1 løsning

Formatering af data i session

Jeg arbejder med en session, som nemt kan komme til at snige sig op på 1-2 KB eller derover.

Hvilke muligheder er der omkring formatering af data, så en session kommer til at fylde mindre? Med formatering tænker jeg i retningen af base64_encode(), serialize() - og kan det overhovedet betale sig?

Et lille tillægsspørgsmål: findes der en predefineret variabel, som man kan smække på en echo, så man kan holde øje med for meget ens session fylder?
Avatar billede 7th Praktikant
27. oktober 2003 - 14:58 #1
Formatering = komprimering, kunne ikke lige komme på det rigtige ord... base64_encode() og serialize() er så vidt jeg ved formateringsværktøjer, findes der komprimeringsværktøjer i PHP?
Avatar billede tipsen Nybegynder
27. oktober 2003 - 17:47 #2
Det er også et spørgsmål om hvor lang tid du bruger på at komprimere og dekomprimere dine session-data - det skulle jo helst være hurtigere end den tid det tager at overføre den sparede plads - ellers kan det jo ikke betale sig!
Avatar billede 7th Praktikant
27. oktober 2003 - 19:47 #3
Selvfølgelig.
Avatar billede swaxi Nybegynder
27. oktober 2003 - 21:29 #4
base64 er en encoding - ikke en komprimering. faktisk fylder data _mere_ efter de er blevet base64-encoded. så det skal du nok ikke gøre.
hvis din server har installeret zlib, og php er kompileret til at bruge det,(det fleste webhost's er) kan du gz-komprimere dine data. det er ret effektivt.
prøv at kigge på : http://dk.php.net/manual/en/ref.zlib.php

tillægsspørgsmålet fatter jeg ikke. du kan lave en custom sessionhandler - det er muligt det er interessant i denne sammenhæng ?

mht. tipsens kommentar - hvis ellers dine data er store nok (over et par hundrede bytes vil jeg tro), bør du kunne nyde godt af komprimering/dekomprimering. grunden til dette er, at moderne computere er væsentligt bedre til at kværne tal, end til at lave input/output.
Avatar billede tipsen Nybegynder
28. oktober 2003 - 13:36 #5
swaxi: Selvom sessionvariablene fylder flere Kb tvivler jeg stadig på, at der kan vindes noget nævneværdigt på en komprimering - men jeg vil da gerne se nogle testresultater der modbeviser det.
Avatar billede tipsen Nybegynder
28. oktober 2003 - 13:39 #6
Det skal vel også ses lidt i lyset, af hvor mange kb der overføres med resten af siden (html, css, billeder osv) - man kunne måske vinde mere ved optimeringer andetsteds.
Avatar billede swaxi Nybegynder
28. oktober 2003 - 16:27 #7
jeg giver dig helt ret i at det er i småtingsafdelingen, så det er nok primært hvis vi taler en side med mange besøgene. men jeg vil tro at omkring et par kb vil kunne komprimeres til måske det halve afhængigt af datatype.
gz-komprimering af selve html-dokumentet er også en mulighed - og det er _ret_ effektivt for sider, der fylder meget. det kan også gøres med css, js etc. (billeder vinder du nok ikke noget på, da de allerede _er_ komprimeret ved eks. jpg) - prøv her :
http://Leknor.com/code/gziped.php
Avatar billede 7th Praktikant
28. oktober 2003 - 20:07 #8
De fleste webhoteller jeg har stiftet bekendskab med, har en begrænsning for størrelsen af sessions. Jeg arbejder på en lille e-handel, hvor indholdet i indkøbkurven bliver lagt i en session, men da der er 12 kombinationer for hvert produkt: farver, størrelser og antal, kan den pågældende session jo nemt komme til at fylde noget. Derfor har jeg spurgt til omkring komprimering.

Jeg tror lige jeg er nød til at afprøve gzip før jeg lukker.
Avatar billede 7th Praktikant
01. november 2003 - 02:39 #9
Tak for hjælpen. Droppede det, og lavede det over database i stedet for...
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