Avatar billede torotune Nybegynder
08. marts 2006 - 13:48 Der er 16 kommentarer og
1 løsning

Forskel på Session og Cache

Hej,

Hvad er forskellen på at sige

session("Navn") = "Bent"
og
cache("Navn) = "Bent"

hvis man vil gemme information mellem sider?

Mvh.
Avatar billede snepnet Nybegynder
08. marts 2006 - 13:50 #1
session er for den enkelte bruges session - og ikke tilgængeligt for andre brugere.
cache er tilgængeligt for alle brugere, og du har mulighed for at angive expirationtime, afhængigheder af andre ting mv.
mvh
Avatar billede torotune Nybegynder
08. marts 2006 - 14:05 #2
Hej igen,

Jeg forstår ikke helt hvordan cache er tilgængeligt for alle brugere og session ikke. Altså hvis jeg laver en

response.write(cache("Navn")) 
response.write(cache("Bent"))

vil jeg da i begge tilfælde få udskrevet "Bent"

Men hvis jeg nu f.eks. bruger det under en brugeroprettelse, hvor jeg skal have gemt et id mellem sider for at holde styr på hvilken bruger der er tale om, hvad er så mest hensigtsmæssigt - for session har da også en expirationtime.
Avatar billede snepnet Nybegynder
08. marts 2006 - 14:54 #3
ja det er rigtigt - men hvis du gør sådan her:

Cahche("navn") = "hans"

vil enhver bruger får "hans" skrevet ud med

Response.Write(Cache("nanv"))

hvorimod det at der under én bruger laves en

Session("navn") = "hans"

ikke vil medføre at andre brugere vil kunne lave en

Response.Write(Session("nanv")) og få "hans" ud.

Brugeroplysninger vil normalt lægges i session, men hvis du bruger asp.net 2.0 kan du benytte profiles.

mvh
Avatar billede arne_v Ekspert
08. marts 2006 - 15:28 #4
Cache svarer vel mere til Application end til Session i den henseende ...
Avatar billede torotune Nybegynder
08. marts 2006 - 16:31 #5
Ah okay, så tror jeg jeg er med. Så dvs. cache dør heller ikke når browseren lukkes.

Jeg må få kigget lidt på profiles. Hvordan er det egentlig bedst at opgradere sig selv til 2.0 i det hele taget - er det bøger man skal have fat i, eller skal man bare igang med at terpe MSDN?
Avatar billede torotune Nybegynder
08. marts 2006 - 16:35 #6
Er der forresten en af jer der ved hvorfor jeg kun kan udskrive et item fra mit datagrid, hvis det item er Integer og ikke hvis det er string?

Hvis jeg laver:

Dim item As String = e.Item.Cells(0).Text

og

Dim item As String = e.Item.Cells(1).Text

Udskriver den første "5" som der står i cellen.
Men den næste udskriver intet fordi der står et ord i?
Avatar billede snepnet Nybegynder
08. marts 2006 - 16:57 #7
det er kun tekst der står i cellerne, så begge dele skulle virke - med mindre du f.eks. har lagt teksten i cells(1) ind i en tekstboks ell.
og jep - det med cache er rigtigt, men din session dør nu heller ikke når browseren lukkes.
mvh
Avatar billede torotune Nybegynder
08. marts 2006 - 17:02 #8
Nej, der er ikke nogen controls i cellerne, men jeg kommer til at se at min første column er en BoundColumn med et DataField og den med tekst er en TemplateColumn der får sit indhold fra Container.DataItem. Kan det have noget med det at gøre?
Avatar billede snepnet Nybegynder
08. marts 2006 - 17:14 #9
ja bestemt.
prøv at vis din template.
mvh
Avatar billede torotune Nybegynder
08. marts 2006 - 17:25 #10
Den er her:

<asp:TemplateColumn SortExpression="Navn" HeaderText="Navn">
    <HeaderStyle horizontalalign="Left" verticalalign="Top"></HeaderStyle>
    <ItemStyle horizontalalign="Left" verticalalign="Top"></ItemStyle>
    <ItemTemplate> <%#Container.DataItem("Navn")%> </ItemTemplate>
</asp:TemplateColumn>
Avatar billede snepnet Nybegynder
08. marts 2006 - 19:09 #11
så vil du kunne finde teksten på en LiteralControl på Conrols(0).... altså e.Item.Cells(0).Controls(0) som du så skal caste til en LiteralControl.
men ... det er klart nemmere hvis du f.eks. sætter en label in:
<ItemTemplate><asp:Label id="lblNavn" runat="server" Text=' <%#Container.DataItem("Navn")%>'></asp:Label></ItemTemplate>
så kan du hente den med
Label l = e.Item.FindControl("lblNavn") as Label;
mvh
Avatar billede torotune Nybegynder
09. marts 2006 - 00:20 #12
Hej igen. Tak for det, jeg valgte at bruge din label-metode som virkede med det samme :-)
Avatar billede snepnet Nybegynder
09. marts 2006 - 07:43 #13
det var så lidt :o)
mvh
Avatar billede torotune Nybegynder
12. marts 2006 - 00:55 #14
Læg et svar - jeg kaster lidt ekstra point af da spørgsmålet lige formerede sig :-)
Avatar billede snepnet Nybegynder
12. marts 2006 - 17:13 #15
et svar kommer her - husk arne.
mvh
Avatar billede arne_v Ekspert
12. marts 2006 - 18:11 #16
jeg har vist ikke bidraget med noget her - kun en lille sidebemærkning
Avatar billede torotune Nybegynder
12. marts 2006 - 21:42 #17
OK, så læsser jeg af til snepnet. Men tak for hjælpen til begge :-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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