Idé til caching i Smarty

December 9, 2008 · Posted in Udvikling · Comment 

BedsteVen.dk viser jeg de seneste aktiviteter på forsiden. Det samme gør jeg på aktivitetssiden. Hver aktivitet indeholder en del databaseopslag. Eftersom min database-klasse som nævnt før automatisk gi’r mig en getFoo() og setFoo() hvis tabellen indeholder feltet foo. Valgte jeg at implementere noget simpelt caching på følgende måde:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{* Jeg har tilføjet et 'cache' felt i min aktivitetstabel *}
{assign var="cache" value=$activity->getCache()}
 
{if $cache}
 
  {$cache}
 
{else}
 
  {capture name=act}
    {* Her hentes og vises den enkelte aktivitet *}
  {/capture}
 
  {* Jeg viser det fangede indhold *}
  {$smarty.capture.act}
 
  {* Måske lidt grimt, men templaten kan også gemme indhold.
     Derfor gemmer jeg det genererede indhold her *}
  {$activity->setCache($smarty.capture.act)}
 
{/if}

Nem caching af statiske filer

October 4, 2008 · Posted in Udvikling · Comment 

Apache har et lækkert mod_expires modul der gør det muligt at cache bestemte filer via nogle retningslinier i fx .htaccess.

Typisk vil man jo gerne være interesseret i at cache billeder, ikoner, stylesheets, javascript m.m. så meget som muligt. Det gøres nemt ved at indsætte følgende i ens .htaccess:

1
2
3
4
5
6
<IfModule mod_expires.c>
        ExpiresActive On
        ExpiresByType image/png              "access 1 days"
        ExpiresByType application/javascript "access 1 days"
        ExpiresByType text/css               "access 1 days"
</IfModule>

Linie 1 checker om moduler er tilgængelig, og nummer 2 aktiverer det.

I de efterfølgende linier angiver jeg en Content-Type og en levetid. I levetiden kan man bruge begreber som years, months, days, hours osv. Angiver man “access 1 days” som jeg har gjort sætter Apache-serveren to headere:

1
2
Expires:       Sun, 02 Nov 2008 21:39:27 GMT
Cache-Control: max-age=86400

Hvor tidspunktet i Expires er en dag ind i fremtiden, og max-age er tilsvarende det antal sekunder et døgn varer.


  • Om websmed.dk

    Jeg hedder Morten, og jeg har udviklet webapplikationer siden slutningen af 90'erne.

    Jeg vil her dele ud af min erfaring, og med jævne mellemrum poste nogle tips og tricks, samt løsningsforslag på generelle dagligdags problemstillinger.

    Jeg har en forkærlighed for PHP og MySQL, hvorfor I nok vil se flest indlæg der vedrører den gren af webudvikling.

    Jeg har en anden blog af mere personlig karakter på mbn.dk, hvor I kan finde kontaktmuligheder m.m.

    Mine indlæg vil tit være baseret på problemstillinger i mit daglige virke, eller i mit eget firma MRLYTICS, hvor jeg sælger kundeundersøgelser samt kundedatabaser.

    Denne side er hostet hos slicehost.

  • Skrevet på Twitter