IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Mise a jour des fichier en cache ne se fait pas


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 696
    Points : 225
    Points
    225
    Par défaut Mise a jour des fichier en cache ne se fait pas
    Bonjour,

    J'ai un problème avec les fichiers caches cela est de aléatoire et je ne comprends pas.

    J'i un fichier manifeste et le swapcache semble fonctionner, mais lorsque je consulte les fichiers cache les fichiers ne sont pas mise a jour et le code des dits fichiers ne prennent pas en compte les évolutions des fichiers

    avez vous une idée sur la raison de ce disfonctionnement?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    De quel mécanisme de cache parle-t-on ? AppCache HTML5 ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 696
    Points : 225
    Points
    225
    Par défaut
    Effectivement (sauf erreur de ma part)

    Ca me rend fou, le rafraîchissement du cache sur android ou ailleurs (google chrome) est opérationnelle de manière aléatoire.

    La logique est que dès que le browser constate une nouvelle version sur fichier manifest, ce dernier (le browser) en conclu que le cache doit être mise à jour avec tous les fichier contenues dans ledit fichier.

    voici une partie de la déclaration du mon fichier html et du fichier manifest, peut être que y verrez une chose que je vois pas

    HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <!DOCTYPE HTML>
    <html manifest="site.manifest">
    <!--html-->
    	<head>
    		<meta name="viewport" content="width=device-width,user-scalable=no">	
    		<meta name="mobile-web-app-capable" content="yes">
    		<link rel="icon" type="image/png" href="images/AirCraftLeft2.png"/>
    		<link rel="stylesheet" type="text/css" href="FileSite/m.FileCss.css"/>
    		<title>Mon titre</title>
    	</head>
    site.manifest
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    CACHE MANIFEST
    # v 0.5
    CACHE:
     
    images/2downarrow.png
    images/2uparrow.png
    images/addressbook.png
    images/AirCraftLeft2.png
    images/apply.png
    images/barcode.png
    images/BardcodeScanner.png
    images/latest.png
    images/Big.png
    images/button_ok.png
    images/cog.png
    images/date3.png
    images/delete.png
    images/edit_add.png
    images/edittrash.png
    images/emblem-important.png
    images/emblem-important.png 
    images/encrypted.png
    images/error.png
    images/exit.png
    images/fileprint.png
    images/gear.png
    images/gnome-netstatus-txrx.png
    images/gohome.png
    images/gpg.png
    images/Help.png
    images/kontact_contacts.png
    images/kplayer.png
    images/landing.png
    images/mail_forward.png
    images/mail_new.png
    images/new_window.png
    images/none.png
    images/None2.png
    images/ok.png
    images/player_playlist.png
    images/previous.png
    images/puce.png
    images/reload.png
    images/report.png
    images/Search.png
    images/takeoff.png
    images/travel.png
    images/undo.png
    images/wizard-27.png
    images/XX.png
    images/trashcan_empty.png
    images/ajax_loader_blue_128.gif
    images/recycle.png
    images/652.GIF
    images/796.GIF
    images/795.GIF
    images/previous1.png
    images/disconnect.png
    images/connect.png
    images/world.png
    images/world_delete.png
    images/user_delete.png 
    images/traffic_lights_red.png
    images/traffic_lights_green.png
    images/email.png
    images/status_unknown.png
    images/viewmag.png
    images/Calander.png
    images/door_out.png
    images/bullet_go.png
    FileSite/m.FileCss.css
    FileSite/FileCss.css
     
    FileSite/jquery.min.js
    FileSite/Sound.js
    FileSite/Dialog.js
    FileSite/Pad.js	
    FileSite/Crypt.js
    FileSite/m.Local.js
     
    m.cnx.html
    voici le code de controle du cache

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    $(document).ready(function(e) {
    		var cacheStatus  = document.getElementById('cacheStatus');
    		cacheStatus.innerHTML="cache status";
    		try{
    			//if (navigator.onLine) {
    				window.applicationCache.addEventListener('updateready', function(e) {
    					if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
    						window.applicationCache.swapCache();
    						cacheStatus.innerHTML="<font size=3 color=red><b><i>update ready!";
    						alert('A new version of this page is available'); 
    						window.location.reload();
    					}
    				}, false);
    				window.applicationCache.addEventListener('cached', function(e) {cacheStatus.innerHTML="<font size=3 color=red><b><i>New"; },false);
    				window.applicationCache.addEventListener('noupdate', function(e) { cacheStatus.innerHTML=""; },false);
    				window.applicationCache.addEventListener('downloading', function(e) { cacheStatus.innerHTML="<font size=3 color=red><b><i>downloading..."; },false);
    				window.applicationCache.addEventListener('error', function(e) { cacheStatus.innerHTML="error"; },false);
    				//window.applicationCache.addEventListener('checking', function (evt){cacheStatus.innerHTML="<font size=3 color=red><b><i>Checking..."; );}, false);	
    				//window.applicationCache.addEventListener('obsolete', function (evt){window.applicationCache.update();}, false);
    				window.applicationCache.update();
    			//} else {
    			//	cacheStatus.innerHTML="offline";
    			//}
    		}catch(e){
    			cacheStatus.innerHTML="Cache error";
    		}
     
    });
    Le but est de faire fonctionner ledit site si il y une interruption de la connexion internet, cela marche correctement sans connexion mais ce qui m'embête c'est que je suis obligé de temps en temps de vider le cache et toutes les donner manuellement, pour les nouvelles mise a jour de js ou images soient prises en compte

    Merci de votre aide
    Cordialement

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    A première vue je ne vois pas d'erreur dans le code.

    L'AppCache a un fonctionnement très particulier, peut-être est-ce juste que tu n'as pas compris une de ces subtilités. Par exemple, il faut que le manifest soit modifié (de quelque manière que ce soit, un espace en plus ou un changement de version en commentaire) pour déclencher la mise à jour du cache, sinon le client restera toujours avec les anciens fichiers. Aussi, la page doit être actualisée après le swapCache pour tout retélécharger les fichiers à mettre en cache, mais c'est ce que tu fais a priori.

    Peux-tu nous en dire plus sur le problème rencontré et les tests effectués ?

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 696
    Points : 225
    Points
    225
    Par défaut
    En fait comme vous pouvez le voir sur le code rien de très compliqué, en fait le swapcache est bien effectué mais lors su refresh de la page je ne vois pas la nouvelle version de ma page HTML ou de fichier Js.

    y a t'il une notion de délais ou que sais-je encore ?

    je vous avou je n'y comprends plus rien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD11] Mise a jour des fichiers 'clients'
    Par cdsoft dans le forum WinDev
    Réponses: 2
    Dernier message: 17/12/2008, 11h33
  2. Serveurs loadbalancé, mise à jour des fichiers
    Par glsn dans le forum Apache
    Réponses: 1
    Dernier message: 14/05/2007, 16h07
  3. Réponses: 2
    Dernier message: 21/04/2007, 20h19
  4. Mise à jour des fichiers syst lors d'une installation
    Par Asdorve dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 03/07/2006, 15h27
  5. [HTML] Problème mise à jour des fichiers en cache
    Par El Riiico dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 05/09/2005, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo