Rafraichir variable php avec ajax si nécéssaire
10 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Rafraichir variable php avec ajax si nécéssaire
Bonjour, j'ai encore un problème avec Ajax. En effet le code suivant fonctionne parfaitement. Il recharge toute les 2 secondes le contenu d'une page dans une <div>
Ce que je cherche à faire, c'est recharger le contenu de la page dans la div, seulement ci le contenu de la page à changer, histoire de ne pas utiliser de la ressource pour rien.
Voici le code qui fonctionne :
Ce que je cherche à faire, c'est recharger le contenu de la page dans la div, seulement ci le contenu de la page à changer, histoire de ne pas utiliser de la ressource pour rien.
Voici le code qui fonctionne :
- Code: Tout sélectionner
function getDiv1(MyDiv, MyUrl) {
var xmlhttp1 = null;
var mondiv1 = document.getElementById(MyDiv);
if (!mondiv1) {
return 1;
}
if (xmlhttp1 && xmlhttp1.readyState != 0) {
xmlhttp1.abort();
}
xmlhttp1 = getXMLHTTP();
if (xmlhttp1) {
xmlhttp1.open("GET", MyUrl, true);
/* on définit ce qui doit se passer quand la page répondra */
xmlhttp1.onreadystatechange = function() {
if (xmlhttp1.readyState == 4 && xmlhttp1.responseText != '') /* 4 : état "complete" */ {
mondiv1.innerHTML = xmlhttp1.responseText;
}
}
xmlhttp1.send(null);
}
}
function rafraichir()
{
getDiv1('babblebox', '?do=babblebox');
setTimeout("rafraichir()", 2000);
}
window.onload = function() { rafraichir();}
Dans la page html :
<div id="babblebox"></div>
Re: Rafraichir variable php avec ajax si nécéssaire
sff a écrit:Ce que je cherche à faire, c'est recharger le contenu de la page dans la div, seulement ci le contenu de la page à changer, histoire de ne pas utiliser de la ressource pour rien.
Et comment sais-tu quand "le contenu de la page a changé" ?
Une fois cette question résolue, tu sauras certainement comment la mettre en place...
Tu rajoutes un condition "est-ce que mon texte est différent de l'actuel" ici et le tour est joué:
- Code: Tout sélectionner
if (xmlhttp1.readyState == 4 && xmlhttp1.responseText != '') /* 4 : état "complete" */ {
mondiv1.innerHTML = xmlhttp1.responseText;
}
Imaginons que dans la div en question on rafraichit une page affichant les enregistements d'une table sql.
On a juste à vérifier, si le nombre d'enregistrement dans cette table est différent ou pas.
Mais tout ceci se situe coté php, donc comment récupérer ces infos dans le javascript?
Genre si le nombre d'enregistrement a changer on peut faire un echo, une alert()... mais comment récupérer tout ca pour faire une condition dans le js.
Merci à ceux qui m'aideront.
On a juste à vérifier, si le nombre d'enregistrement dans cette table est différent ou pas.
Mais tout ceci se situe coté php, donc comment récupérer ces infos dans le javascript?
Genre si le nombre d'enregistrement a changer on peut faire un echo, une alert()... mais comment récupérer tout ca pour faire une condition dans le js.
Merci à ceux qui m'aideront.
Suite
Non désolé, mais j'arrive pas.
J'ai une page test2.php avec un echo :
Et j'ai la page test.php avec le js et la div qui affiche test2.php
Je vois vraiment pas comment faire pour que le js arrête de charger toutes les seconde test2.php tant que cette page n'a pas changé.
J'ai une page test2.php avec un echo :
- Code: Tout sélectionner
<?php
echo 'texte';
?>
Et j'ai la page test.php avec le js et la div qui affiche test2.php
- Code: Tout sélectionner
<html>
<script type="text/javascript">
// Fonction pour Ajax
function getXMLHTTP()
{
var xhr=null;
if (window.XMLHttpRequest) // Firefox et autres.
xhr = new XMLHttpRequest();
else if (window.ActiveXObject) // Internet Explorer.
{
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e1)
{
xhr = null;
}
}
}
else
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return xhr;
}
// Div refresh.
function getDiv1(MyDiv, MyUrl) {
var xmlhttp1 = null;
var mondiv1 = document.getElementById(MyDiv);
if (!mondiv1) {
return 1;
}
if (xmlhttp1 && xmlhttp1.readyState != 0) {
xmlhttp1.abort();
}
xmlhttp1 = getXMLHTTP();
if (xmlhttp1) {
xmlhttp1.open("GET", MyUrl, true);
/* on définit ce qui doit se passer quand la page répondra */
xmlhttp1.onreadystatechange = function() {
if (xmlhttp1.readyState == 4 && xmlhttp1.responseText != '') /* 4 : état "complete" */ {
mondiv1.innerHTML = xmlhttp1.responseText;
}
}
xmlhttp1.send(null);
}
}
function rafraichir()
{
getDiv1('test2', 'test2.php');
setTimeout("rafraichir()", 1000);
}
window.onload = function() { rafraichir();}
</script>
</script>
<body>
<DIV ID="test2">
</div>
</body> </html>
Je vois vraiment pas comment faire pour que le js arrête de charger toutes les seconde test2.php tant que cette page n'a pas changé.
le seul truc que tu peut gagner est de ne pas changer le contenu de ta page html si le contenu renvoyé est vide (parce que pas de changement) c'est de la BP que tu gagnera mais tu sera forcé de faire tourner qque chose côté serveur pour savoir si oui ou non qque a changé dans la base.
10 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Référencement et Web 2.0
- Google Web Toolkit, pour créer des applications en AJAX
- Yahoo Maps API
- Google rejoint le projet Open AJAX créé par IBM
- Fin de l'API Google Search SOAP
- Définition(s) du Web 2.0
- Google ferme l'API SOAP aux nouveaux développeurs
- Optimisation du référencement d'un site en AJAX
- Ajouter un moteur de recherche d'images sur son site
- Référencement de l'AJAX : la solution Google
Consultez la description détaillée des produits ou services de Google suivants : Google Web Toolkit
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum