---
title: "Inloggning och cache"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/160849-inloggning-och-cache"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "whad"
published: "2007-05-28T11:15:13.000Z"
updated: "2007-05-28T16:23:23.000Z"
replies: 5
views: 353
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/160849-inloggning-och-cache"
---

# Inloggning och cache

## #1 — whad, 2007-05-28T11:15Z

Jag vet att det finns en mängd trådar angående cachning av sidor, men jag kunde inte hitta någon med riktigt samma problem som jag.

Jag brukar cacha sidor som är lite tyngre att ladda med "Response.Expires = 45". Men om jag cachar en sida som är unik för den inloggade användaren så kommer ju nästa användare som loggar in från samma dator inom 45 minuter att få den förre användarens cachade sida. Går detta att lösa, eller ska man cacha en sådan sida på ett annat sätt?

Permalänk: https://www.webforum.nu/p/160849

## #2 — @nders, 2007-05-28T11:20Z

När du använder response.expires berättar du bara för klientens webbläsare när sidan slutar gälla. Servern cachear alltså inte.

Permalänk: https://www.webforum.nu/p/1984957

## #3 — whad, 2007-05-28T12:19Z

Jo, men finns det ingen lösning?
Jag vill ju att den tunga sidan ska cachas, men att den ändå ska laddas om när en ny användare loggar in.

Permalänk: https://www.webforum.nu/p/1985010

## #4 — doggelito, 2007-05-28T12:36Z

Vad är det som är så tungt? Inte sidan i sig va!?
Ett alternativ är ju att slänga saker i sessions om det t.ex. hämtas från databas eller så! :)

Permalänk: https://www.webforum.nu/p/1985017

## #5 — whad, 2007-05-28T16:05Z

Nej, det är några databasfrågor som tar lite tid.
Och det är lite mycket information att lagra i sessions.

Jag får väl sätta in användarens ID i adressen om det inte finns någon annan lösning som tvingar fram en omladdning.

Permalänk: https://www.webforum.nu/p/1985070

## #6 — OveRRidE, 2007-05-28T16:23Z

Användarens ID i adressen? Nej, det rekommenderar jag verkligen inte, såvida du inte har hård kontroll på att det ID't verkligen tillhör rätt person. Annars kan man ju bara mata in vilket ID som helst. 

Om du verkligen måste cache'a saker, gör det isf i Application t.ex.; 

```
function getCacheObject(sName, sKey)
   If Len(Application("CacheObject" & sName & sKey & "Expires")) Then
      If Not DateDiff("n", Now, Application("CacheObject" & sName & sKey & "Expires")) > 0 Then 
         getCacheObject = Application("CacheObject" & sName & sKey & "Data")
      End If
   End If
end function

sub setCacheObject(sName, sKey, lTTLMin, sData)
   Application("CacheObject" & sName & sKey & "Data") = sData
   Application("CacheObject" & sName & sKey & "Expires") = DateAdd("n", lTTL, Now)
end function
```

Sen kan du bygga HTML och fösa in om du vill; 

```
sB = getCacheObject("datatable", "userid" & session("UserId"))

If Not Len(sB) Then
   Set rs = conn.Execute("SELECT ... bla bla")

   sB = "<table>"

   While not rs.eof
      sB = sB & "<tr><td>" & rs("DataField") & "</td></tr>"
   rs.movenext
   wend

   sB = sB & "</table>"

   setCacheObject "datatable", "userid" & session("UserId"), 15, sB

   set rs = nothing

End If

Response.Write sB
```

Den här koden är helt otestad, jag skrev den precis. :r

/Red. Buggfix. :l

Permalänk: https://www.webforum.nu/p/1985072

---

Tråden på webben: https://www.webforum.nu/amne/asp/160849-inloggning-och-cache
