Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

une instruction javascript qui buggue

1 réponse
Avatar
Patrice
Bonjour,

j'ai remarqué depuis des années, que l'instruction javascript
window.location=<page web> a un défaut: celui de télécharger
préférentiellement la page dans le cache si elle y est déjà. Cela peut être
ennuyeux si la page est dynamique (mon langage de prédilection est le perl ,
mais plus couramment on utilise le php).

J'utilise un "vieux" IE6 sous Win2k; j'aimerais savoir si ce "bug" existe
aussi dans les versions plus récentes d'IE, et sur d'autres navigateurs.
Enfin, pardonnez toutes ces questions, existe-t-il un moyen de le forcer à
télécharger la page depuis le serveur?

Merci d'avance de vos réponses éclairées,

Bien à vous tous,

P.C.

--
www.mircscripts.fr

1 réponse

Avatar
ASM
Patrice a écrit :
Bonjour,

j'ai remarqué depuis des années, que l'instruction javascript
window.location=<page web> a un défaut: celui de télécharger
préférentiellement la page dans le cache si elle y est déjà.



Ha ?

et location.href aussi ?

Cela peut être
ennuyeux si la page est dynamique (mon langage de prédilection est le perl ,
mais plus couramment on utilise le php).

J'utilise un "vieux" IE6 sous Win2k; j'aimerais savoir si ce "bug" existe
aussi dans les versions plus récentes d'IE, et sur d'autres navigateurs.



ce n'est sans doute pas un "bug" sinon à quoi servirait le cache ?
Normalement le navigateur vérifie que le fichier sur serveur n'a pas
changé avant de choisir celui du cache. (et comme ton perl n'a sans
doute pas changé ... hop !)

Enfin, pardonnez toutes ces questions, existe-t-il un moyen de le forcer à
télécharger la page depuis le serveur?



pour "forcer" le chargement il suffit que l'adresse soit variable
(jamais envoyer la même)

par exemple :
location = 'page.php';
devient :
location = 'page.php#'+Math.random();
ou :
location = 'page.php?init='+Math.random();

comme il y a très peu de chance d'avoir une ancre nommée '0.1234789654'
ou que le php n'aura en fait pas à s'occuper de la variable 'init'
l'astuce ne pose pas de problème.


--
Stephane Moriaux et son (moins) vieux Mac