Jag tänkte om man skulle använda sig av array-funktion när jag hämtar in trädstrukturen från db:n och lägger denna array i en session. Så om man byter sida eller klickar på ett inlägg så behöver man inte göra om db-kopplingen...är det en bra lösning?
Nä, det tycker jag inte... att lägga in ett helt recordsets array i en session kommer att dra mycket minne, och när det då är många som besöker sajten så kommer inte servern att palla med särskilt mycket.
det var inte alls dumt @nders...men är det verkligen så att det gör att det går lite snabbare...jag har tex en rullgardin med medlemmar...som i princip är statisk...skulle det vara bra att sätta den i application?
Vide, jag trodde session-variabeln var lika stor minnesmässigt som en vanlig variabel...?
Vide, jag trodde session-variabeln var lika stor minnesmässigt som en vanlig variabel...?
Nja, något större är den (information om användaren den är kopplad till finns ju med). Men iom att en variabel försvinner så fort sidan är klar och Sessionen stannar kvar (20 min default), så kommer server hosta ont.
Men visst är det statisk info så som är samma för alla så kan man precis som @ säger lägga det i en Application... frågan är om du tjänar något på det, vilket jag inte tror... Varken prestandamässigt (visst en liten marginell skillnad) eller tiden det tar extra att koda...
i application_onstart i global.asa kastar man in alla medlemmar i en application("members") på lämpligt sätt.
om en ny medlem registreras, så låser du bara application-objektet med .lock, lägger till medlemmen, låser upp med .unlock.
varför inte?
- - - -
Vide, jag trodde session-variabeln var lika stor minnesmässigt som en vanlig variabel...?
jo, men med skillnaden att vanliga variabler lever bråkdelen av en sekund då sidan exekveras. ponera att du har en session timeout som är 20 min(default). det innebär att varenda session du skapar ligger och tar samma minne som en vanlig variabel, men istället för att göra det i bråkdelen av en sekund, så gör den det i minst 20 minuter.
Problemet är också att när man lagrar en fetingarray i Application eller Session så dupliceras denna i minnet, så fort ett skript använder arrayen. När man hämtar Session("MinArray")(8) så skapas en kopia av arrayen, och sedan hämtas värdet ur denna.
Jag skulle i stället rekommendera att du sparar ut recordsetet som en fil, så kan du återanvända det, utan kontakt med databasen.
Det är också smart med att spara till en fil...massor av godis...:) det är ganska långt till att jag börja leka med de bitarna men jag det är ändå intressant att fundera i vidareutvecklingsbanor...tack för er insikt...:)
emission: Går det snabbare att använda ett recordset för att läsa av XML-filer, eller är DOM XML att föredra? Enligt ditt exempel borde väl ett recordset vara snabbare, men kanske ändå inte?
Jag tänkte på en annan sak med det med sessions...man kan ju bara tömma session när man använder och då kommer bort från problemet att det sparas i 20 minuter...