Just nu i M3-nätverket
Jump to content

Objekt i Session-variabel


Janne A

Recommended Posts

Att lägga ett objekt i en sessionvariabel, är det dumt? Har förstått att en adodb.connection inte är bra att lägga där men objekt man skapar själv (med jscripts function), hur är det med dom?

 

 

Hälsningar Janne

Link to comment
Share on other sites

Jonas Wikström

Hej Janne A!

 

Ja det finns ett enkelt svar till din fråga. Lägg aldrig upp ett objekt i en session variabel. Det är ett enkelt sätt att göra din web-applikation minneskrävande och icke skalbar. Som du kanske vet vrappas mycket information runt ett objekt.

 

Förresten undvik att använda session state så mycket som möjligt. Information om att man är inloggad och vissa preferenser är nog nästan det enda legala..

 

http://msdn.microsoft.com/library/en-us/iisref/html/psdk/asp/iiapsess.asp?frame=true

 

MH

 

>> Jonas

 

[inlägget ändrat 2001-08-08 14:57:19 av Jonas Wikström]

[inlägget ändrat 2001-08-08 14:59:16 av Jonas Wikström]

Link to comment
Share on other sites

Tackar, intressant länk.

Har 4 strängar som jag vill ska finnas tillgängliga över hela sessionen. Det "naturligaste" sättet är att göra fyra session-variabler, en för varje sträng.

Kom sedan på att man kan ju skapa egna objekt i jscript, skapade en objektfunktion (eller vad det kallas) enligt:

 

function classUserInfo(username, ip, userlevel, customer)

{

this.username = username;

this.ip = ip;

this.level = userlevel;

this.customer = customer;

}

 

och instansen enligt

 

session("userinfo") = classUserInfo(...);

 

 

Det funkar bra, men frågan är om det finns någon stor prestanda-nackdel med detta? I så fall hur stor? Vet att en sessions-variabel upptar visst mycket minne och 4 st tar onekligen upp mer än en...

 

Hälsningar Janne

 

Link to comment
Share on other sites

Jonas Wikström

Hello Janne!

 

Vad jag skulle göra är helt enkelt att strunta i din funktion och spara dina variabler direkt i SessionsObjektet istället. Vad du gör är ju egentligen lite kaka på kaka faktiskt.

 

Vad beträffande prestanda vet jag ju inte så noga men det blir ju så klart långsammare och tar upp mer minne än med objektet.

 

Sedan beror ju det hela på antalet användare. Om vi räknar med att du sammalagt sparar 50 byte i sessions variabeln och har 1000 samtidiga användare så blir minnet som IIS håller stat i onekligen minst 50 kByte.

 

MH

>> Jonas

 

Link to comment
Share on other sites

Hej,

 

Vill bara påpeka att det är stor skillnad på COM objekt och små java/vb-script object.

 

COM object bör du inte lagra i sessionsobjektet, eftersom det tar mycket minne och kraft för att hantera dessa. Dessutom blir de ju inte stateless vilket man oftast vill att de skall vara.

 

Ditt javascript objekt passar utmärkt att spara i sessionsobjektet. Det är ändå bara en pekare som sparas där. Du kan numera skapa egna objekt i VBScript om du kör den senaste versionen.

 

/foo

 

 

Link to comment
Share on other sites

Gunnar Liljas

.....men man kan inte placera dem i Session. VBScript-klasser lever bara lika länge som sidan, eftersom sessions-hanteringen inte vet hur objektet ska serialiseras.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...