php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.11.2008, 19:57  
Neuer Benutzer
 
Registriert seit: 09.08.2008
Beiträge: 20
fabsen2102 befindet sich auf einem aufstrebenden Ast
Standard Cachen von Javascript und XSL-Files vermeiden

Hallo zusammen,

ich habe ein Web-Anwendung für ein Extranet geschrieben. Ich verwende PHP, Javascript und XSL-Dateien um die XML-Ausgabe von PHP zu formatieren.
Nun habe ich folgendes Problem: Die XSL-Dateien und auch die Javascript-Dateien werden von jedem Browser gecached. Und zwar so, dass ein erneutes öffnen oder Reload (selbst mit Strg + F5) nicht helfen die neuen XSL-Dateien zu laden.
Bei Strg + F5 werden lediglich die Javascript-Dateien erneut geladen.
Die XSL-Dateien werde ich im IE7 nur dann los, wenn die temporären Dateien lösche. Im Firefox muss ich explizit den Cache leeren.

Verwendet werden Firefox (Version 2 und 3) und IE7.

Gibt es eine Möglichkeit den Cache zu vermeiden? Im Head meiner Seite habe ich bereits
Code:
<meta http-equiv="cache-control" content="no-cache">
In der XML-Ausgabe habe ich bereits folgendes hinterlegt:

PHP-Code:
if(ob_get_length()) ob_clean();
header('Expires: Fri, 25 Dec 1980 00:00:00 GMT'); // time in the past
header('Last-Modified: ' gmdate('D, d M Y H:i:s') . 'GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Pragma: no-cache');
header('Content-Type: text/xml'); 
Doch in Javascript kenne ich keine "no-cache" Option.

Schonmal Danke für eure Hilfe.
fabsen2102 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.11.2008, 20:39  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Vorab die Frage: Warum müssen die xsl und js Datei ständig neu erstellt werden. Das scheint mir nicht richtig (durchdacht) zu sein.

Die HTTP Header, die Du bereits bei der XML-Ausgabe setzt, gelten für alles was mit HTTP ausgeliefert wird. Du kannst die Dateien also zum Beispiel auch durch HTTP jagen und die header setzen oder mod_expires - Apache HTTP Server verwenden oder oder oder.
David ist offline   Mit Zitat antworten
Alt 20.11.2008, 22:44  
Neuer Benutzer
 
Registriert seit: 09.08.2008
Beiträge: 20
fabsen2102 befindet sich auf einem aufstrebenden Ast
Standard

Also "neu erstellt" werden müssen die Dateien natürlich nur dann, wenn sich etwas ändert. Heute liefere ich Version 1 aus und nächste Woche Version 2 (zum Beispiel).

Was meinst du mit "Dateien durch HTTP jagen"? Wenn ich per Javascript auf eine XSL-Datei verweise, werden diese doch "durch HTTP gejagt", oder?

mod_expires verstehe ich nicht so ganz! Gibt der Apache den angegebenen Dateien dann eine Art Gültigkeit mit?

Das "oder oder oder" verstehe ich auch nicht so ganz - deswegen frage ich hier...
fabsen2102 ist offline   Mit Zitat antworten
Alt 20.11.2008, 22:57  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

oh Mist, ich habe mich vertippt. Ich meinte "durch php" jagen.

Aber wenn Du eine neue Version auslieferst, dann ändere doch einfach den url. Im einfachsten Fall bindest Du nicht mehr http://x.y.z/meinSkript.js ein sondern http://x.y.z/meinSkriptv2.js ein.

Zitat:
mod_expires verstehe ich nicht so ganz! Gibt der Apache den angegebenen Dateien dann eine Art Gültigkeit mit?
Genau. Apache kann auch http header setzen. Tut es bei "statischen" Dateien ja auch. Mit mod_expire kannst Du auf einige dieser HTTP Header Einfluss nehmen.
David ist offline   Mit Zitat antworten
Alt 21.11.2008, 18:18  
Neuer Benutzer
 
Registriert seit: 09.08.2008
Beiträge: 20
fabsen2102 befindet sich auf einem aufstrebenden Ast
Standard

Ah, dachte schon!
Ja, dachte mir auch schon, dass ich einfach alles mit PHP "dynamisch" erzeuge.
Jetzt habe ich es mit Hilfe von mod_expires gelöst. Allerdings habe ich hier noch eine Frage.
Ich habe in den Ordner javascript und xsl meiner Page jeweils eine htaccess Datei. In diese habe ich folgendes eingetragen:
Code:
ExpiresActive On
ExpiresDefault "access plus 6 hours"
Angenommen ich lade die Seite. Ich setze in den Javascript-Dateien jede Menge Variablen auf einen bestimmten Wert und ich lade die Seite erneut genau in dem Moment wo die Dateien "ungültig" werden. Die Dateien werden erneut geladen und alle meine Javascript-Variablen sind wieder auf dem default-Wert.

Ich bin gerade nicht so ganz sicher, ob sowas überhaupt passieren kann. Allerdings weiß ich auch nicht so ganz wie ich das testen soll.

Ich hoffe, Ihr versteht was ich meine
fabsen2102 ist offline   Mit Zitat antworten
Alt 21.11.2008, 18:27  
Neuer Benutzer
 
Registriert seit: 09.08.2008
Beiträge: 20
fabsen2102 befindet sich auf einem aufstrebenden Ast
Standard

Noch was: Kennt jemand ein gutes Buch bzgl. Web-Optimierung, Performance-Messung etc. Gerne auch in Englisch.

Ich habe nichts brauchbares gefunden.
fabsen2102 ist offline   Mit Zitat antworten
Alt 21.11.2008, 19:29  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Wenn sich die Werte by design ändern, würde ich sie auslagern und diese "Datei" überhaupt nicht cachen.
Wenn es um Versionierung geht, würde ich wie gesagt den url ändern und das Problem tritt überhaupt nicht auf.
David ist offline   Mit Zitat antworten
Alt 22.11.2008, 02:20  
Neuer Benutzer
 
Registriert seit: 22.11.2008
Beiträge: 21
71470022 befindet sich auf einem aufstrebenden Ast
Standard

Ich habe gute Erfahrung gegen hartnäckiges "Cachen" gemacht, indem ich Bildern und Javascripten bei Bedarf einfach ein Request hinten anhänge

<?php
echo '<script type="text/javascript" src="meinescriptlets.js?'.time().'"></script>';
?>

Klappt eigentlich tadelgelöst.

mfg, 71470022
71470022 ist offline   Mit Zitat antworten
Alt 22.11.2008, 21:25  
Neuer Benutzer
 
Registriert seit: 09.08.2008
Beiträge: 20
fabsen2102 befindet sich auf einem aufstrebenden Ast
Standard

das klingt gut! Werde ich mal testen!
fabsen2102 ist offline   Mit Zitat antworten
Alt 22.11.2008, 21:30  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Damit machst Du den Cache aber komplett "aus", d.h. bei jedem Request wird das Skript neu geladen.
David ist offline   Mit Zitat antworten
Antwort


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
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
Unsichtbares Formularfeld mit Javascript ansprechen mAy^daY HTML, Usability und Barrierefreiheit 6 13.08.2006 21:25
PHP + Javascript + MYSQL socke PHP Tipps 2006 4 02.04.2006 22:02
Wo Php wo JavaScript dethlef14 Off-Topic Diskussionen 3 03.03.2006 12:34
Variable wird geändert bei Übergabe an Javascript PHP Tipps 2007 4 17.12.2005 16:53
[Erledigt] JavaScript &amp; PHP (Bilderupload) PHP-Fortgeschrittene 5 11.07.2005 17:08
[Erledigt] NewWindow mit JavaScript - Vor-Zurück Button automatisch ? HTML, Usability und Barrierefreiheit 0 10.07.2005 15:43
Php soll Javascript beschleunigen PHP Tipps 2005 4 17.04.2005 12:56
Javascript ON/OFF Connar PHP Tipps 2005 3 03.04.2005 09:47
JavaScript cachen? zwelch HTML, Usability und Barrierefreiheit 2 08.02.2005 12:31
Files zippen mit ftp_exec()?! - Hilfe PHP-Fortgeschrittene 0 24.01.2005 10:39
Formulare mit arrays mit php und gleichzeitig mit JavaScript PHP-Fortgeschrittene 2 14.10.2004 15:33
JavaScript in JavaScript geschriebene Html-Datei einbinden. woods HTML, Usability und Barrierefreiheit 6 06.09.2004 18:33
Javascript HTML, Usability und Barrierefreiheit 5 31.08.2004 18:30
php + Javascript, Variablenübergabe PHP Tipps 2004 14 28.07.2004 15:42

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript nicht cachen, javascript datei nicht cachen, js nicht cachen, javascript cache verhindern, javascript datei cache, ie cache js verhindern, javascript dateien nicht cachen, js dateien cachen, javascript dateien cache, xml datei nicht cachen, js datei nicht cachen, javascript nicht cache, javascript datei cahche, js datei cachen, js dateien nicht cachen, javascript dateien cachen, mod_expire, xsl cach löschen, caching von javascript dateien verhindern, was ist eine cache.js datei

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:34 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