php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.01.2005, 10:57  
inu
Erfahrener Benutzer
 
Registriert seit: 20.11.2003
Beiträge: 244
inu
Standard Cachen von HTML-Code

Hallo Leute,

ich generiere aus DBs dynamsiche Inhalte von Webseiten. Diese Inhalte sind recht komplex und lang. Nun habe ich festgestellt, dass die Browser diesen generierten "HTML-Quelltext" nicht cachen. Gibt es dennoch eine Möglichkeit, dies zu erzwingen, um die Seiten performaten zu gestalten.

PS.: Die Inhalte der Seiten ändern sich alle paar Tage.
inu ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.01.2005, 11:17  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Man kann dem Browser entsprechende Cache- Informationen schicken:

http://www.php.net/header

Such mal hier im Forum nach "cache", dann wirst du sicherlich fündig...
__________________
Entwickler aus Leidenschaft und ein Zahnrad in einem der größten Java-Projekte der Welt.
mepeisen ist offline  
Alt 30.01.2005, 12:12  
inu
Erfahrener Benutzer
 
Registriert seit: 20.11.2003
Beiträge: 244
inu
Standard

Danke,

aber was muss ich beim Cachen setzen, wenn ich erreichen will, dass immer erst mit dem HTMl-Code verglichen wird. Stimmt dieser überein, soll auf den Cache zugegriffen werden. Bei Änderungen am Code, soll nachgeladen werden.

Vielen dank
inu ist offline  
Alt 30.01.2005, 12:22  
Benutzer
 
Registriert seit: 02.01.2005
Beiträge: 49
Andun
Andun eine Nachricht über ICQ schicken
Standard

Also ich hab vom Cache nicht so viel ahnung wie das funktioniert, aber wenn der Code verglichen wird, muss er doch sowieso schon mal runtergeladen werden, oder???

Also dann könnte man ihn ja auch direkt nehmen.

EDIT: Mir fällt grad ein: Es könnte ja auch an Dateigröße verglichen werden. ??? Dann weiß ich es auch nicht.
Andun ist offline  
Alt 30.01.2005, 12:25  
inu
Erfahrener Benutzer
 
Registriert seit: 20.11.2003
Beiträge: 244
inu
Standard

Vielleicht noch eins zur Ergänzung: Ich arbeite mit Schablonen. Diese werden auf ene Varible gelegt und geparsed. Es wird also jedesmal erst beim Aufruf der php-Datei ein HTML-Stream erstellt, der am Ende mit echo ausgegeben wird.
inu ist offline  
Alt 30.01.2005, 19:35  
Erfahrener Benutzer
 
Registriert seit: 26.09.2004
Beiträge: 430
toscho
Standard

Sende die passenden HTTP-Header: Last-Modified, Expires, Content-Length, ETag usw. – und führe bei Conditional Requests erst eine Cache-Validation durch, ehe du tatsächlich HTML-Code aussendest.
Beispiel:
PHP-Code:
<?php
function http($mime='text/html'$charset='utf-8'$compress=TRUE) {

    
header('Content-Type: '.$mime.(($charset)?';charset='.$charset :''));

    
/* Datum der letzten Änderung. */
    
$last_mod date("D, d M Y H:i:s"getlastmod()) . ' GMT';
    
header ('Last-Modified: ' .  $last_mod);

    
/* Ein ekliger Hack. */
    
$etag     md5($last_mod);
    
header ('ETag: "' $etag '"');

    
/* Die Verfallszeit richtet sich nach dem Alter der Datei. */
    
header ('Expires: '
        
gmdate("D, d M Y H:i:s"time()-getlastmod()+time()).' GMT');

    if (
$compress) {
        if(
$_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1'
            
and !zlib_get_coding_type()) {
            
ob_start('ob_gzhandler');
        }
        
header ('Vary: Accept-Encoding');
        
/* Sonst legt der IE keinen Cache dafür an. */
        
header ('Cache-Control: private');
    }

    
/* Cache-Validation. */
    
if ((isset($_SERVER['HTTP_IF_NONE_MATCH'])
            and 
strpos($_SERVER['HTTP_IF_NONE_MATCH'], $etag))
        or
        (isset(
$_SERVER['HTTP_IF_MODIFIED_SINCE'])
            
/* Wieso geht strpos() nicht? Hm. */
            
and strstr($_SERVER['HTTP_IF_MODIFIED_SINCE'], $last_mod))
        )
    {
        if (
strstr(php_sapi_name(), '/cgi/')) {
            
header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
            echo 
"\r\n\r\n";
        } else {
            if (
version_compare(phpversion(),'4.3.0','>=')) {
                
header('Not Modified'TRUE304);
            } else {
                
header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
            }
        }
        
/* Wir senden nix. */
        
die();
    }
}

/* Test */
http('text/plain');

for(
$i=1$i<=1000; print "Test\n"$i++);
?>
Außerdem kannst du deinen generierten Code auch als statisches HTML irgendwo ablegen und erst prüfen, ob die angeforderte Ressource schon statisch vorliegt, ehe du sie neu generierst.

Gruß
Thomas
toscho ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Design und Code Trennen TeazY PHP Tipps 2008 29 21.05.2008 12:08
Nur bestimmten Html Code zulassen? litterauspirna PHP Tipps 2008 5 29.04.2008 12:30
Html Code maskieren mit php Mania PHP Tipps 2008 5 12.10.2007 08:34
HTML Code in MySQL DB speichern FireFIghter Datenbanken 3 27.12.2006 15:45
richtiger code in textarea, als html gehts nicht notyyy HTML, Usability und Barrierefreiheit 2 09.12.2006 13:21
Probleme mit \" in html code PHP Tipps 2006 6 22.02.2006 19:19
html code beim schreiben in mysql db entfernen djrace PHP Tipps 2006 1 03.02.2006 20:33
in HTML Code umwandeln ckrentel Datenbanken 1 24.11.2005 22:47
[Erledigt] &amp;amp;lt;if&amp;amp;gt; &amp;amp;lt;/if&amp;amp;gt; in einer HTML Datei fuer Templatesy PHP-Fortgeschrittene 6 03.11.2005 12:05
bb code in html umwandeln necrom0rb PHP Tipps 2005 2 06.05.2005 02:50
Html Code Komplett auslesen PHP Tipps 2005 15 04.01.2005 22:59
[Erledigt] php code wird nicht ausgeführt PHP Tipps 2004-2 41 27.12.2004 18:13
HTML Code in Variable - GEFAHR? Beatbox PHP Tipps 2004-2 4 18.12.2004 14:02
[Erledigt] HTML Formular durch PHP Code per Mail versenden PHP Tipps 2004-2 3 12.11.2004 11:48
[Erledigt] JS Variable im HTML Code verwenden HTML, Usability und Barrierefreiheit 1 05.10.2004 08:52

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
codierungen für caches

Alle Zeitangaben in WEZ +1. Es ist jetzt 07:39 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.