Le navigateur Chrome semble avoir des problèmes de c ache.

Le
Jean Francois Ortolo
Bonjour

Sur mon site : https://www.pronostics-courses.fr , du moins dans les
pages internes de statistiques, je lance en mode Ajax, deux scripts, à
partir du même script, mais évidemment à des endroits différents.

J'ai tout essayé pour faire en sorte qu'il n'y ait pas de cache.

Les données des deux scripts devraient concorder. Elles ne concordent
qu'à partir du deuxième chargement de la page.

Ce problème ne se produit que sous Chrome. Sous Firefox il n'y a pas
de problème.

Ces scripts sont lancés ( en mode Ajax ), avec leur urls en https,
quand j'essaye en http çà ne se lance pas.

Voici un exemple :

https://www.pronostics-courses.fr/php/courses_nouvelles/pronostics_new_courses,6.html

Merci beaucoup de votre aide.

Respectueusement.

Jean François Ortolo
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean Francois Ortolo
Le #26339737
Le 18/02/2015 21:25, Jean Francois Ortolo a écrit :

Voici un exemple :

https://www.pronostics-courses.fr/php/courses_nouvelles/pronostics_new_courses,6.html


Merci beaucoup de votre aide.

Respectueusement.

Jean François Ortolo




Je corrige l'url d'exemple.

https://www.pronostics-courses.fr/php/courses_nouvelles/pronostics_new_courses,1.html


L'url précédente n'a pas de pronostics, car aucun cheval n'est
prévisible.

Respectueusement.

Jean François Ortolo
SAM
Le #26339799
Le 18/02/15 21:25, Jean Francois Ortolo a écrit :


Bonjour

Sur mon site : https://www.pronostics-courses.fr , du moins dans les
pages internes de statistiques, je lance en mode Ajax, deux scripts, à
partir du même script, mais évidemment à des endroits différents.

J'ai tout essayé pour faire en sorte qu'il n'y ait pas de cache.



traditionnellement, pour éviter le cache, en JS "normal" on rajoute à
l'url du code inutile mais aléatoire (ou tt au moins différent à chaque
instant)

du genre :

function aller(ou) {
var d = new Date();
ou.href = ou.href+'?alea='+d.getTime();
}

<a href="http://monsite/index" onclick="aller(this)">home</a>


ainsi le navigateur croit que c'est toujours une nouvelle page qui est
appelée


Même artifice pour Ajax ? à voir ...


Cordialement,
--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
SAM
Le #26339798
Le 18/02/15 21:29, Jean Francois Ortolo a écrit :
Le 18/02/2015 21:25, Jean Francois Ortolo a écrit :

Je corrige l'url d'exemple.

https://www.pronostics-courses.fr/php/courses_nouvelles/pronostics_new_courses,1.html


L'url précédente n'a pas de pronostics, car aucun cheval n'est
prévisible.




C'est bêta ! sous Chrome j'ai d'abord lancé l'autre url avant celle-ci :-(
De plus (pour le test) comme je ne sais pas me servir de ce site, que
faut-il y faire ?
J'ai cliqué sur [OK] ... oui, bon, la même page ... amusant.
(Fx 35.0.1 et Chrome Version 40.0.2214.111 (64-bit))



Cordialement,
--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
Jean Francois Ortolo
Le #26339809
Bonjour Monsieur

J'ai fait celà :

+ new Date().getTime();

pour l'ajout d'un paramètre aléatoire à l'url.

Est-ce que c'est correct ?


J'ai rajouté ceci aux scripts php lancés :

[code]
<?php
ob_start();

ini_set( .. des trucs pour fixer le nom de l'id de session )

header("Expires: Sat, 01 Jan 2005 00:00:00 GMT");
header("Last-Modified: ".gmdate( "D, d M Y H:i:s")."GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

include( le script qui lance la session );

... Le reste,

ob_end_flush();

?>
[/code]


Et puis j'ai ajouté ceci, après le header fixant la connexion comme une
connexion Ajax pour le script appelé :


xsr.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2005 00:00:00 GMT");


Au total, celà ne résout pas le problème du cache.

Cependant ce problème de cache, ne se produit que sous Chrome.

Le script qui lance la session, se contente de faire :

$a = session_id();

if ($a == "")
{
session_start();
}


Voici la version de Chrome que j'ai :

Sous Linux Fedora 21 64 bits :

Version 40.0.2214.111 (64-bit).


J'ajoute, que à partir d'un lien externe ( comme celui que j'ai donné
), effectivement le problème de cache ne se produit pas.

Mais... Quand on utilise le menu du haut de page : "Courses du Jour",
puis que l'on clique un lien de la liste des courses, le problème de
cache persiste.

De même, quand on est déjà dans cette liste de courses, et que l'on
clique un lien de course.

Voici deux pages de listes de courses :

Courses du lendemain ou de l'après-midi :

https://www.pronostics-courses.fr/php/courses_nouvelles/new_courses.php

Courses du soir ou de la veille :

https://www.pronostics-courses.fr/php/courses_actuelles/new_courses.php


Pour les courses passées, il est possible d'accéder à chaque liste de
courses d'une journée, dans cette page :

Courses passées :

https://www.pronostics-courses.fr/php/courses_anciennes/old_courses.php

Sous Chrome, le fait de recharger la page résout le problème.


Sous Firefox il n'y a pas de problème de cache.

Merci beaucoup de votre réponse.

Respectueusement.

Jean François Ortolo
Denis Beauregard
Le #26339864
Le Wed, 18 Feb 2015 21:25:53 +0100, Jean Francois Ortolo
fr.comp.infosystemes.www.auteurs:

Ce problème ne se produit que sous Chrome. Sous Firefox il n'y a pas
de problème.



De mémoire, il y a sous FF une façon de désactiver le cache.

about:config

puis un grand nombre de paramètres si on recherche cache.


Je me demande si

1- cela a un effet sur le résultat de FF
2- Chrome a sans doute l'équivalent. Voir chrome://about/


Denis
Jean Francois Ortolo
Le #26339882
Le 19/02/2015 17:26, Denis Beauregard a écrit :
Le Wed, 18 Feb 2015 21:25:53 +0100, Jean Francois Ortolo
fr.comp.infosystemes.www.auteurs:

Ce problème ne se produit que sous Chrome. Sous Firefox il n'y a pas
de problème.



De mémoire, il y a sous FF une façon de désactiver le cache.

about:config

puis un grand nombre de paramètres si on recherche cache.


Je me demande si

1- cela a un effet sur le résultat de FF
2- Chrome a sans doute l'équivalent. Voir chrome://about/


Denis





Bonjour Monsieur

Vous avez bien vu tout ce que j'ai fait ( sur le plan programmation
), pour qu'il n'y ait pas de cache.

J'ai vu sur le net, qu'il y a un réel problème de cache avec Chrome.

Mais je ne sais pas comment ( programmativement parlant ), faire en
sorte qu'il n'y ait pas de cache avec Chrome.

C'est sûr et certain que Google lui-même y parvient( avec les sites
Google ), donc un tel moyen de programmer les appels Ajax existe.

Mon problème, n'est pas celui de l'utilisation de Chrome, mais de la
programmation Ajax, et en particulier ( pour particulier à Chrome ) d'un
problème spécifique de cache.

Ce problème de cache de Chrome, les webmasters le rencontrent, donc
logiquement je devrais bien tomber sur un webmaster ayant résolu ce
problème.

Chrome est le seul navigateur avec lequel j'ai ce problème.

Merci beaucoup de votre aide.

Respectueusement.

Jean François Ortolo
SAM
Le #26339909
Le 19/02/15 18:11, Jean Francois Ortolo a écrit :

Bonjour Monsieur



Tu n'as pas décrit comment se manifestait le cache de Chrome ...
Si ?
Où ?

Vous avez bien vu tout ce que j'ai fait ( sur le plan programmation
), pour qu'il n'y ait pas de cache.



Non !

Je ne vois même pas où et quand l'Ajax intervient !

Je ne suis pas encore parvenu à découvrir le JS lié au HttpRequest !

Exemple :
Je suis sur la page :
Je scrolle un chouia, histoire de voir le tableau complet et un bout du
prono calculé,
Je clique l'un des chiffres [1] [2] ... [8] (que je sais pas ce que c'est)
... Ça me recharge toute la page :-( je suis de retour en haut !!!
Enfin ... ça m'envoie à ce qu'il pourrait être une autre page (pas
certain, je ne sais comment sont redirigées les urls sur le serveur)



En tous cas, sous Chrome, j'ai beau agiter les pages dans tous les sens
il ne m’apparait pas que l'une d'elles au
rechargement/changement-page/chargement-Ajax tende à ressembler à la
précédente ...


L'autopsie n'est pas facilitée par les 14 scripts éparpillés tout au
long de la page ! sans compter ceux qui en appellent d'autres chez
Google et autres facétieux.


Ha ! ?
Ho !?
Mais ... il semble qu'il y ait du HttpRequest-JS sur le truc de vote !

Test Firefox :
J'y clique [Voter] - Tiens ça m'a changé le truc, je n'ai plus les 4
étoiles mais le bazar semble avoir compris que j'avais voté pour 4
étoiles (je pensais passer par un intermédiaire pour choisir, que nenni
!) - Bon, soit !
???? ça semble définitif !!! mon vote reste de 4 * pour toutes les pages
!!! J'ai beau cliquer sur les Nº de courses (qui semblent être toutes à
Vincennes) mon vote est pour toutes comme si le succès d'une course
faisait le succès de tout le champs de course ?!

Bref! Même là je n'y comprends rien !!!

À mon idée ce truc comme les boutons haut et bas de page ne font
qu'encombrer inutilement.
(les boutons haut/bas ne permettent pas de voir le milieu et ils
encombrent : 3 lignes !!!)



Ha?
Surprise ! !!!
Passé maintenant sur "Courses du jour" ...
Youpi ! je peux re-voter ! (c'est touj 4 *)
Avant j'étais sur "Courses actuelles"
(subtile la différence !)



Rigolo :
j'ai cliqué sur [Courses du Jour] en haut et j'arrive sur "Courses du Soir"
Et y a pas une seule le soir, tout l'après-midi !
... ! ? ! ?

Ha! non, mea culpa ! y en a le soir au Chili
(avec le décalage c'y sont aussi celles de l'ap-midi ! Mébon ...)

Mystère !
J'ai cliqué [Courses du Jour] en bas et ... j'ai plus le Chili !!
Ha! Ben! Pour Sûr !
En fait je suis rendu à "Courses du lendemain" ??? !!!


rigolo :
mystère :


Quand je dis que je n'y comprends rien ? !


Cordialement,
--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
Jean Francois Ortolo
Le #26339920
Bonjour Monsieur

Je répond à vos questions ci-dessous.




Le 19/02/2015 20:32, SAM a écrit :
Le 19/02/15 18:11, Jean Francois Ortolo a écrit :

Bonjour Monsieur



Tu n'as pas décrit comment se manifestait le cache de Chrome ...
Si ?
Où ?



C'est simple.

Le tableau des statistiques, devrait donner un ordre ( de bas en haut
) des numéros de partants des chevaux, pratiquement identique à celui du
pronostic calculé, ( de gauche à droite ).

La seule différence, est que le pronostic calculé, ne retient pas les
chevaux non prévisibles.

Les chevaux non prévisibles statistiquement, sont ceux qui n'ont
pratiquement pas couru ( colonne "Couru" faible ), et/ou qui n'ont pas
couru depuis longtemps ( colonne "Jours" élevée ).


Le problème du cache, fait que les données, soit du tableau, soit du
pronostic, sont fausses ( elles proviennent du cache probablement ),
donc elles ne sont pas cohérentes entre elles ( tableau versus pronostic ).

Ceci ne se produit pas à chaque première fois que la page est
chargée, mais celà ne se produit jamais lors d'un rechargement de la page.

Le problème du cache ne se produit pas toujours, et jamais lors d'un
rechargement.



Vous avez bien vu tout ce que j'ai fait ( sur le plan programmation
), pour qu'il n'y ait pas de cache.



Non !

Je ne vois même pas où et quand l'Ajax intervient !




L'id du tableau dans le html, c'est : 'statistiques', et celui du
pronostic c'est : 'pronostics'.

Après chaque id, se trouve le Javacript mode ajax chargeant le script
correspondant : "affichage.php" pour le tableau, "affic_pronostics.php"
pour le pronostic.

Sauf pour les pronostics des courses anciennes,qui est :
"affic_old_pronostics.php"

Pour l'instant, le code javascript n'est pas minifié.


Je ne suis pas encore parvenu à découvrir le JS lié au HttpRequest !

Exemple :
Je suis sur la page :

Je scrolle un chouia, histoire de voir le tableau complet et un bout du
prono calculé,
Je clique l'un des chiffres [1] [2] ... [8] (que je sais pas ce que c'est)




Les chiffres en haut à droite du tableau, permettent d'accéder
directement aux autres courses de la même réunion.

D"ailleurs, quand on accède aux courses de cette manière, il n'y a
pas de problème de cache. Pourquoi je ne sais pas.


... Ça me recharge toute la page :-( je suis de retour en haut !!!
Enfin ... ça m'envoie à ce qu'il pourrait être une autre page (pas
certain, je ne sais comment sont redirigées les urls sur le serveur)





Le chiffres sont des liens hyper-texte, donc la page de la course
correspondant au numéro cliqué est chargée.

C'est une simple facilité de navigation.



En tous cas, sous Chrome, j'ai beau agiter les pages dans tous les sens
il ne m’apparait pas que l'une d'elles au
rechargement/changement-page/chargement-Ajax tende à ressembler à la
précédente ...


L'autopsie n'est pas facilitée par les 14 scripts éparpillés tout au
long de la page ! sans compter ceux qui en appellent d'autres chez
Google et autres facétieux.


Ha ! ?
Ho !?
Mais ... il semble qu'il y ait du HttpRequest-JS sur le truc de vote !

Test Firefox :
J'y clique [Voter] - Tiens ça m'a changé le truc, je n'ai plus les 4
étoiles mais le bazar semble avoir compris que j'avais voté pour 4
étoiles (je pensais passer par un intermédiaire pour choisir, que nenni
!) - Bon, soit !
???? ça semble définitif !!! mon vote reste de 4 * pour toutes les pages
!!! J'ai beau cliquer sur les Nº de courses (qui semblent être toutes à
Vincennes) mon vote est pour toutes comme si le succès d'une course
faisait le succès de tout le champs de course ?!

Bref! Même là je n'y comprends rien !!!




Un vote est appliqué à chaque type de page, pour une durée de 30 jours.

Le "type de page", c'est soit une page directement accessible du type
"pronostics_new_old_courses,[0-9]+.html" ( courses anciennes ), ou bien
la même page accessible en cliquant sur le bouton "Ok" en bas de la
page, ( pour éventellement changer les paramètres du Panneau de
Configuration, ou bien activer l'affichage de l'Historique graphique des
courses )

Soit pour les courses du soir ou du lendemain, ou de la veille, même
page pronostics_new_courses,0.html ( 0 à nombre maximum de courses/jour
), etc pour la même page rechargée. 1

Globalement, je reconnais que mon site est complexe d'utilisation,
mais on s'y fait. ;)




À mon idée ce truc comme les boutons haut et bas de page ne font
qu'encombrer inutilement.
(les boutons haut/bas ne permettent pas de voir le milieu et ils
encombrent : 3 lignes !!!)



Ha?
Surprise ! !!!
Passé maintenant sur "Courses du jour" ...
Youpi ! je peux re-voter ! (c'est touj 4 *)
Avant j'étais sur "Courses actuelles"
(subtile la différence !)




Rigolo :
j'ai cliqué sur [Courses du Jour] en haut et j'arrive sur "Courses du Soir"
Et y a pas une seule le soir, tout l'après-midi !
... ! ? ! ?




La dénomination "Courses du soir", c'est pour les courses de la
journée accessibles après 14h environ. La dénomination du menu :
"Courses du jour", c'est pour le courses de la même journée que celle
dont on vient.


Ha! non, mea culpa ! y en a le soir au Chili
(avec le décalage c'y sont aussi celles de l'ap-midi ! Mébon ...)

Mystère !
J'ai cliqué [Courses du Jour] en bas et ... j'ai plus le Chili !!
Ha! Ben! Pour Sûr !
En fait je suis rendu à "Courses du lendemain" ??? !!!


rigolo :
mystère :


Quand je dis que je n'y comprends rien ? !


Cordialement,




Très respectueusement.

Jean François Ortolo
SAM
Le #26339949
Le 19/02/15 21:33, Jean Francois Ortolo a écrit :

Bonjour Monsieur

Je répond à vos questions ci-dessous.



Haaaaaa! Merci Merci !

Le 19/02/2015 20:32, SAM a écrit :

Tu n'as pas décrit comment se manifestait le cache de Chrome ...



C'est simple.



;-)

Le tableau des statistiques / pronostiques

Le problème du cache, fait que les données, soit du tableau, soit du
pronostic, sont fausses ( elles proviennent du cache probablement ),
donc elles ne sont pas cohérentes entre elles ( tableau versus
pronostic ).



comme ça me parle chinois ...
et que je ne vois pas quelle cohérence il pourrait il y avoir entre les
2 ...
(là où je regarde, les partants sont les mêmes sur les 2 tableaux)
(à mon idée il ne peut il y avoir plus de cohérence que ça)

et que je ne comprends pas que le tableau ne soit pas rangé par Nº de
cheval ou (au pire/mieux ?) par "Rangs"
(je ne puis choisir avec les boutons du bas, il ne couvrent pas toutes
les colonnes et en plus je ne vois pas le tableau pour voir à quoi ça
peut bien correspondre)

Tiens ? pourquoi on n'a pas là un petit JS pour classer ce tableau par
la colonne de son choix ?
(yapa besoin de recharger toute la page pour reclasser un table, avec le
JS kivabien yaka cliquer le titre de la colonne à classer)

Ceci ne se produit pas à chaque première fois que la page est
chargée, mais celà ne se produit jamais lors d'un rechargement de la page.

Le problème du cache ne se produit pas toujours, et jamais lors d'un
rechargement.



Ce que je continue à ne pas comprendre c'est pourquoi :
1) tu as besoin de JS pour afficher des données fournies par PHP sur une
page elle-même bâtie par le PHP
2) qu'il te faut utiliser du HttpRequest pour ça
3) que le code JS est divisé en petits tronçons un peu partout dans le
fichier
4) que le HttpRequest est lancé *pendant* que la page se charge
Normalement (et c'est son avantage sur le JS "normal") on s'en sert
*après* chargement de la page, pour la modifier partiellement *après*
son affichage *sans* avoir à TOUT recharger
Si tu t'en sers au chargement ça n'a plus aucune espèce d’intérêt !
Il faut peut-être voir là la cause de tes soucis avec Chrome ?
Essaie de mettre ce HttpRequest des courses et/ou pronos dans une
fonction et de la lancer après chargement de la page (éventuellement à
l'aide d'un setTimeout).

Je ne vois même pas où et quand l'Ajax intervient !





Si, cette fois je crois avoir vu ! AAAaaaRRrrrGgggghhh !

L'id du tableau dans le html, c'est : 'statistiques', et celui du
pronostic c'est : 'pronostics'.

Après chaque id, se trouve le Javacript mode ajax chargeant le script
correspondant : "affichage.php" pour le tableau, "affic_pronostics.php"
pour le pronostic.



Ben ... pourquoi tu ne fais pas un simple *include* du côté PHP ????


Sauf pour les pronostics des courses anciennes,qui est :
"affic_old_pronostics.php"

Pour l'instant, le code javascript n'est pas minifié.



il est même tellement "aéré" qu'à la ligne 35 j'ai oublié et ne puis
relire le code que j'ai vu à la ligne 1 soit 10 lignes réelles + haut
;-)

Je clique l'un des chiffres [1] [2] ... [8] (que je sais pas ce que
c'est)



quand on accède aux courses de cette manière, il n'y a
pas de problème de cache. Pourquoi je ne sais pas.



Le PHP a eu le temps de préparer le nécessaire avant que le HttpRequest
ne le réclame ?
Sans doute qu'un "for each" a déjà lancé préliminairement l'extraction
des données de la BdD et qu'elles sont encore dans le cache du serveur ?

L'autopsie n'est pas facilitée par les 14 scripts éparpillés tout au
long de la page ! sans compter ceux qui en appellent d'autres chez
Google et autres facétieux.





Me semble même que j'ai cru voir API cache.pmu.fr ... !

J'y clique [Voter]
Bref! Même là je n'y comprends rien !!!



Un vote est appliqué à chaque type de page, pour une durée de 30 jours.



J'ai pas pu choisir mon vote ! :-(
Et pourquoi "type de page" ?
Parce que si c'est ça "voter pour la page " (et non pas la qualité de
son contenu, des pronos) je donne 1/2 étoile car tout le HTML est trop
compliqué et forcément les css aussi.

Globalement, je reconnais que mon site est complexe d'utilisation,



Surtout que ... les graphiques ... faut aussi se les farcir.
(plus le cheval ne court pas et plus la courbe est haute !!!)
(si j'ai bien vu ? ! ? ... ?)
Et ... la courbe jaune, je ne la vois pas.

Et c'est quoi ce cheval "Amour du Lupin" qui ne part qu'une fois sur 4 ?
Et pour gagner en plus ! ce con !

Pour le graphique (après l'avoir rangé à l'endroit : le 1er arrivé
d'abord) il aurait été aussi simple de prévoir un simple bouton soit
pour en appeler l'image, soit pour le montrer-cacher.
À mon sens il n'y a pas besoin de :
1) JS pour calculer la largeur du view-port, yaka servi un graphique en
1200px de large pour tout le monde et régler la largeur en css (ie: 96%)
2) y a pas besoin de JS pour fabriquer l'adresse de l'image (puisque
c'est déjà le PHP qui fabrique ce JS, non ?)

<button onclick="var g=document.images['historique'];
g.src = 'new_historique.php?FILENAME=resultats0.txt&' +
this.location.toString().split('?')[1];
g.className = 'plein'? 'vide' : 'plein';">historique</button>

.vide { width: 96%; height: 500px; margin: auto; display: none; }
.plein { display: inline }


mais on s'y fait. ;)



à croire
puisqu'il te reste des visiteurs ;-)


j'ai cliqué sur [Courses du Jour] en haut et j'arrive sur "Courses du
Soir"



La dénomination "Courses du soir", c'est pour les courses de la
journée accessibles après 14h environ. La dénomination du menu :
"Courses du jour", c'est pour le courses de la même journée que celle
dont on vient.



de la logique des statisticiens !!!


Justement ! je viens de la même journée que les courses du jour
Mébon ...
... re de la logique des ...



Cordialement,
--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
Jean Francois Ortolo
Le #26340158
Bonsoir

Le problème est résolu.

J'ai mis des en-têtes "If-Modified-Since" à time() ( en GMT ) lors
des appels Ajax.

Chaque script appelé, a le header "Expires" à time() - 5 , et le
header "If-Modified" à time() - 3.

Ceci, avec le classique "Cache-Control: nocache, must-revalidate".

ET puis pour faire bonne mesure : "Pragma: nocache".

Cà roule, plus de cache du tout, même traitement pour les pages
appelantes, qui n'étaient parfois pas chargées.

Qui a dit que "Chrome a des problèmes de cache" ?

Hé bé...

Respectueusement.

Jean François Ortolo
Publicité
Poster une réponse
Anonyme