2010-09-28 9 views
1

Si j'utilise les paramètres GET pour changer mon fichier jphascript externe .php pour charger un contenu différent basé sur la page non des navigateurs vont mettre ce fichier en cache? ils vont traiter global_js.php? page = toto et global_js.php? page = barre comme s'ils avaient des noms différents et charger le contenu à nouveau correctement? ou dois-je inclure quelque chose dans mon en-tête pour le faire?GET paramètres pour changer mon fichier jphascript externe .php pour charger le contenu différent

MISE À JOUR: Différents paramètres d'obtention sont envoyés au fichier et il chargera un contenu différent. Ai-je pris une mauvaise approche? mon css ressemble à ceci:

<link rel="stylesheet" type="text/css" href="./CSS/css_global.php?load={$pagecat}&load_mootools={$load_mootools}&load_jquery={$load_jquery}&css_extra={$css_extra}&version={$xx_version}_{$css_extra}"> 

Si je mets chacun de mes quelques fichiers externes dans un événement de fichier séparé mais il y aura plusieurs requêtes http la plupart des utilisateurs n'activent pas un comportement non-cache sur leurs navigateurs comme nous Les développeurs et ils vont mettre en cache les fichiers résultant en une expérience utilisateur plus rapide mais maintenant avec la combinaison différente disponible sur mon CSS il ne sera jamais mis en cache car chaque page est légèrement différente dans les paramètres get il envoie le fichier CSS.

+0

@skaffman pourquoi avez-vous supprimé les balises "dynamic-javascript" et "external-file"? – Neo

+0

Je faisais un peu de tag-coupe. Les balises génériques à faible utilisation comme celles-ci n'aident pas à catégoriser les questions. Ce n'était pas seulement votre question, c'était une poignée d'autres. – skaffman

Répondre

1

C'est exact, le navigateur les traitera comme des fichiers différents.

Je ne recommanderai pas d'utiliser l'approche B00MER si vous DO souhaitez que les fichiers soient mis en cache individuellement. Une fois les fichiers mis en cache individuellement, vous pouvez forcer une mise à jour du cache en ajoutant un paramètre de version au fichier, de sorte que chaque fois que vous mettez à jour l'application (la version change), les caches seront régénérés.

app.js?module=account&version=1.0_RC2_2010-09-28 
+0

mais ce n'est pas seulement la mise à jour de différents paramètres get qui sont envoyés au fichier et cela va charger un contenu différent. Ai-je pris une mauvaise approche. Parce qu'aujourd'hui je me suis dit ... Si je mets chacun de mes rares fichiers externes dans un fichier séparé bien qu'il y ait plusieurs requêtes http, la plupart des utilisateurs n'activent pas un comportement non-cache sur leurs navigateurs comme nous les développeurs et ils vont Cache les fichiers résultant en une expérience utilisateur plus rapide, mais maintenant avec la combinaison différente disponible sur mon CSS, il ne sera jamais mis en cache, car chaque page est légèrement différente dans les paramètres get, il envoie le fichier CSS. – Neo

1

Vous pouvez essayer ceci AVANT toute sortie de votre fichier .php Javascript est en cours de chargement.

<?php 
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
?>