commit 321bc9524c47609fe2e6934b0f28fe5bdf0ccc10
parent 298449f1ddcaff5e3d15cf52cad8fecc76ca9155
Author: dankert <devnull@localhost>
Date: Fri, 16 Jun 2006 23:26:29 +0200
Methode maxAge(), setzen von Expires-Headern im HTTP-Header.
Diffstat:
3 files changed, 35 insertions(+), 7 deletions(-)
diff --git a/actionClasses/Action.class.php b/actionClasses/Action.class.php
@@ -20,7 +20,10 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// ---------------------------------------------------------------------------
// $Log$
-// Revision 1.21 2006-02-27 19:17:04 dankert
+// Revision 1.22 2006-06-16 21:26:29 dankert
+// Methode maxAge(), setzen von Expires-Headern im HTTP-Header.
+//
+// Revision 1.21 2006/02/27 19:17:04 dankert
// Aenderung in "callSubAction()": Kein Aufruf von "forward()"
//
// Revision 1.20 2006/01/29 17:17:49 dankert
@@ -407,7 +410,7 @@ class Action
if ( ! $conf['cache']['conditional_get'] )
return;
- $lastModified = substr(date('r',$time),0,-5).'GMT';
+ $lastModified = substr(date('r',$time-date('Z')),0,-5).'GMT';
$etag = '"'.md5($lastModified).'"';
// Header senden
@@ -416,7 +419,7 @@ class Action
// Die vom Interpreter sonst automatisch gesetzten
// Header uebersteuern
- header('Cache-Control:');
+ header('Cache-Control: must-revalidate');
header('Pragma:' );
// See if the client has provided the required headers
@@ -437,7 +440,22 @@ class Action
header('HTTP/1.0 304 Not Modified');
exit; // Sofortiges Skript-Ende
}
-
+
+
+
+ /**
+ * @param max Anzahl der Sekunden, die die Seite im Browsercache bleiben darf
+ */
+ function maxAge( $max=3600 )
+ {
+ // Die Header "Last-Modified" und "ETag" wurden bereits in der
+ // Methode "lastModified()" gesetzt.
+
+ header("Expires: ".substr(date('r',time()-date('Z')+$max),0,-5).'GMT' );
+// header("Pragma: public"); // 'Pragma' ist eigentlich Bullshit und
+ // wird von den meisten Browsern ignoriert.
+ header("Cache-Control: max-age=".$max.", s-maxage=".$max.", must-revalidate");
+ }
diff --git a/actionClasses/BackgroundAction.class.php b/actionClasses/BackgroundAction.class.php
@@ -20,7 +20,10 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// ---------------------------------------------------------------------------
// $Log$
-// Revision 1.1 2006-01-11 22:38:33 dankert
+// Revision 1.2 2006-06-16 21:26:29 dankert
+// Methode maxAge(), setzen von Expires-Headern im HTTP-Header.
+//
+// Revision 1.1 2006/01/11 22:38:33 dankert
// Neue Aktionsklassen f?r neue Darstellungsart
//
// Revision 1.21 2005/04/16 21:35:23 dankert
@@ -113,7 +116,9 @@ class BackgroundAction extends Action
$this->setTemplateVar( 'stylesheet',$user->style );
$this->setTemplateVar( 'css_body_class','background' );
-
+
+ $this->maxAge( 4*60*60 ); // 1 Stunde Browsercache
+
$this->forward( 'border' );
}
}
diff --git a/actionClasses/BorderAction.class.php b/actionClasses/BorderAction.class.php
@@ -20,7 +20,10 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// ---------------------------------------------------------------------------
// $Log$
-// Revision 1.1 2006-01-11 22:38:33 dankert
+// Revision 1.2 2006-06-16 21:26:29 dankert
+// Methode maxAge(), setzen von Expires-Headern im HTTP-Header.
+//
+// Revision 1.1 2006/01/11 22:38:33 dankert
// Neue Aktionsklassen f?r neue Darstellungsart
//
// Revision 1.21 2005/04/16 21:35:23 dankert
@@ -113,6 +116,8 @@ class BorderAction extends Action
$this->setTemplateVar( 'stylesheet',$user->style );
$this->setTemplateVar( 'css_body_class','border' );
+ $this->maxAge( 4*60*60 ); // 1 Stunde Browsercache
+
$this->forward( 'border' );
}
}