Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment fonctionne ifModified avec JQuery ?

Et Php

24 août 2010 à 0:09:50

Bonjour ou bonsoir !

Je suis confronté à un problème ...
J'aimerais savoir comment fonctionne ifModified dans jQuery(1.4) car j'ai chercher a peu près partout mais rien de très concluant ...
Voici donc mon fichier js de départ (j'aurais évidemment inclus préalablement jQuery ... Cette fonction est mis aussi dans le ready(...);)

function chargerContenu() {
	
	$.ajax({
		url: 'fichierACharger.php',		
		ifModified: true,
		success: function(data){
			
			$("#contenu").append(data);
			
			setTimeout(chargerContenu(), 5000);
		}
	});
}
chargerContenu();


Et voici ma page fichierACharger.php :
(pour plus de simplicité toute les modifications se feront manuellement dans ce fichier *)
<?php
/* Quelque chose ici ??? */
?>
ligne 1<br/>
ligne 2<br/>
ligne 3<br/>

En toute logique, des qu'on lance la page avec le code javascript, le contenu sera affiché dans la div. Aucun problème jusque la ...
Pour visualisé correctement les "problèmes" (ou plutôt le non fonctionnement de ifModified) il faut ouvrir Firebug en console (avant d'exécuté le code)
Ainsi on remarquera que ifModified ne sert à rien, puisqu'il n'est même pas pris en compte ...

Bref je sais que je suis sur la mauvaise voie simplement par la logique des choses...
1) On exécute la fonction
2) Si tout se passe bien (ce qui est la cas) on rentre dans le success
3) On fait ce qu'on a à faire
4) On re-exécute la fonction avec setTimeout(...)

Bref logiquement parlant, c'est normal que le ifModified ne "fonctionne" pas mais comment faire alors ?
Si on enlève le setTimeout, la fonction n'est plus rapellée ...
Dilem ...

Merci de m'éclairé !
(j'ai aussi lu que ifModified regardait les headers "etag" et "last-modified")




* On évitera ainsi les accès au BDD qui grossissent le code ...


PS : voici le code "complet" des tests pour les fainéants

html + js
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>
	   <title>---</title>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	</head>
	<body>

		<div id="contenu" style="border: 1px solid red; width: 200px; height: 200px;">
		</div>
		<script type="text/javascript" src="jquery.js"></script>
		<script type="text/javascript">
		$(document).ready(function(){
			
			function chargerContenu() {
	
				$.ajax({
					url: 'fichierACharger.php',		
					ifModified: true,
					success: function(data){
						
						$("#contenu").append(data);
						
						//setTimeout(function(){ chargerContenu();}, 5000);
					}
				});
			}
		chargerContenu();
		
		});
		</script>
	</body>
</html>

"php"
ligne 1<br/>
ligne 2<br/>
ligne 3<br/>

  • Partager sur Facebook
  • Partager sur Twitter
24 août 2010 à 8:36:17

Salut,

Tu as déjà un sujet en cours pour le même problème. Inutile de faire des doublons.
  • Partager sur Facebook
  • Partager sur Twitter
Directeur technique, créateur de jeux HTML5 et fan de JavaScript | La suite de OnHack est sur les rails !