ASPNL logo (1 kb)
zaterdag 17 mei 2008




Microsoft MVP

.NET Codewise Community
<< vorige | overzicht | volgende >>

Simpel caching systeem

Door Roland Mensenkamp
15 Juni 2001

Dit artikel laat zien hoe je een caching systeem kan maken met gebruik van Application variables. Voordeel van zo een systeem is dat je een veel snellere code krijgt want je hoeft niet steeds naar de database om de gegevens op te halen, dit kan de performance van een site 1000 x verbeteren.

Deze functie en sub-routine zijn echt simpel en flexibel. Je kan ze makkelijk over de hele site gebruiken, door deze simpelweg bij het bestand te voegen.

De functie 'Check' kijkt of er data in de Application variabele zit en of hij up-to-date is. Er gaan 3 parameters in:
 T_naam = Application Timer naam
 A_naam = Application naam
 T_compare = Hoe lang de applicatie geen update moet uitvoeren (seconden)

De sub 'Bewaar' wordt gebruikt om de waarden in een Application variabele te bewaren. Ook deze heeft 3 parameters:
 T_naam = Application Timer naam (naam die jij eraan wilt geven)
 A_naam = Application naam (naam die jij eraan wilt geven)
 N_waarde = Nieuwe waarde die jij wilt bewaren in de Application variabele

Opmerking: Bewaar geen objecten in Session of Application variables! Bepaalde soorten objecten geven grote problemen. (zie Feiten en mythen over sessies)

cachefunc.asp
<%
Function Check(T_naam, A_naam, T_compare)
   If Application (A_naam) = ""_
   Or DateDiff("n", Application(T_naam), Now()) > T_compare Then
       Check = True
   Else
       Check = False
   End If
End Function

Sub Bewaar(T_naam, A_naam, N_waarde)
   Application.Lock
       Application(T_naam) = Now()
       Application(A_naam) = N_waarde
   Application.Unlock
End Sub
%>

page.asp
<!--#include file="Cachefunc.asp"-->
<%
'kijkt of de var gevuld is of tijd verlopen is
If Check("T1", "A1", 1) Then
       'Hier komt de code van wat je wilt bewaren (bijv.: open van DB etc)
       sNwaarde = "Met jouw nieuwe waarde"
       Call Bewaar("T1", "A1", sNwaarde)
   Else
       Response.Write Application("A1")
End If
%>

Zoals je ziet is het vrij simpel, en echt de moeite waard, als performance belangrijk voor je is. Natuurlijk werkt het alleen goed als de gegevens niet constant veranderen en deze niet per gebruiker verschillen. Als de gebruikers echter niet onmiddelijk wijzigingen hoeven te zien, dan is dit heel handig.

<< vorige | ^ naar boven | overzicht | volgende >>
copyright 2000-2007 ASPNL