Actualisation automatique
Fermé
error
-
6 oct. 2014 à 12:52
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 - 10 oct. 2014 à 21:21
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 - 10 oct. 2014 à 21:21
A voir également:
- Actualisation automatique
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Message automatique thunderbird - Guide
- Gmail libellé automatique - Guide
- Sommaire automatique word - Guide
- Logiciel de sauvegarde automatique gratuit - Guide
9 réponses
Salut,
Pour rediriger en JS il y à la méthode suivante :
window.location.reload()
Normalement avec cette méthode tu devrais pouvoir faire ce que tu souhaites ;)
Pour rediriger en JS il y à la méthode suivante :
window.location.reload()
Normalement avec cette méthode tu devrais pouvoir faire ce que tu souhaites ;)
L'AJAX n'est pas un langage, mais une manière différente/détourné de l'utilisation du JS.
La fonction que je t'ai donné est écrite en JS, mais cela ne l'empêche en aucun cas de fonctionner dans du code prévu pour du traitement côté serveur.
Dans l'ordre :
- Tu postes un nouveau message/commentaire et ton script envoie les infos pour qu'ils soit stocké dans ta BDD (Passage d'info côté client=> côté serveur)
- Ton script php te dis que tu reçois un nouveau message (côté serveur => côté client)
- Ton p'tit morceau de JS qui actualise ta page te permet donc de recevoir ton message ;)
Un p'tit lien vers l'explication : comment fonctionne l'ajax : http://fr.wikipedia.org/wiki/Ajax_(informatique)
La fonction que je t'ai donné est écrite en JS, mais cela ne l'empêche en aucun cas de fonctionner dans du code prévu pour du traitement côté serveur.
Dans l'ordre :
- Tu postes un nouveau message/commentaire et ton script envoie les infos pour qu'ils soit stocké dans ta BDD (Passage d'info côté client=> côté serveur)
- Ton script php te dis que tu reçois un nouveau message (côté serveur => côté client)
- Ton p'tit morceau de JS qui actualise ta page te permet donc de recevoir ton message ;)
Un p'tit lien vers l'explication : comment fonctionne l'ajax : http://fr.wikipedia.org/wiki/Ajax_(informatique)
prosthetiks
Messages postés
1189
Date d'inscription
dimanche 7 octobre 2007
Statut
Membre
Dernière intervention
12 juin 2020
431
10 oct. 2014 à 21:21
10 oct. 2014 à 21:21
C'est pas du push !
C'est l'inverse: client => Serveur
Ton script php te dis que tu reçois un nouveau message (côté serveur => côté client)
C'est l'inverse: client => Serveur
Merci je pense voir un peu mieux comment fonctionne l ajax mais j'ai quand meme beaucoup de mal ...
<script type='text/JavaScript'>
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest)
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else {
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr
}
// appel lors du clic
function go(){
var xhr = getXhr()
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
alert(xhr.responseText);
}
}
xhr.open("GET","ajax.php",true);
xhr.send(null);
}
</script>
Si j'ai bien compris la première fonction getXhr sert à instancier, et la seconde fonction go devrait faire appeler ajax.php lors du clic non ? Pourtant il ne se passe rien... j'ai loupé quelque chose ?
<script type='text/JavaScript'>
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest)
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else {
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr
}
// appel lors du clic
function go(){
var xhr = getXhr()
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
alert(xhr.responseText);
}
}
xhr.open("GET","ajax.php",true);
xhr.send(null);
}
</script>
Si j'ai bien compris la première fonction getXhr sert à instancier, et la seconde fonction go devrait faire appeler ajax.php lors du clic non ? Pourtant il ne se passe rien... j'ai loupé quelque chose ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fail c'est normal que çe ne marche je n'avais pas onclick la fonction... Donc dans mon ajax.php j'ai un echo"bonjour", et quand je clique sur la formulaire ca m'affiche alors ce message.
Je vois un peu mieux le principe, mais je ne vois pas comment faire pour recharger toutes les pages.
Je vais mettre windows.location.reload() dans ajax.php ? Met ca va me recharge que la page ou il y a eu le clic, pas toutes celles ouvertes ailleurs ?
Je vois un peu mieux le principe, mais je ne vois pas comment faire pour recharger toutes les pages.
Je vais mettre windows.location.reload() dans ajax.php ? Met ca va me recharge que la page ou il y a eu le clic, pas toutes celles ouvertes ailleurs ?
J'ai personnellement eu le même souci y'a pas longtemps, je sais rafraîchir toutes les pages d'un site si une news est posté mais de manière un peu "crade" et pas jolie jolie.
J't'explique un peu le raisonnement à toi de voir après si tu veux l'utiliser ou non :
- Tu fais un p'tit script JS qui est sur la page et qui regarde un certain fichier, si la valeur du fichier change alors : windows.location.reload();
- Sinon rien
C'est pas beau, c'est moche, c'est même dégueulasse mais sa fonctionne.
Après essaye de voir si y'a pas mieux, mais sinon tu peux reprendre le raisonnement suivant !
J't'explique un peu le raisonnement à toi de voir après si tu veux l'utiliser ou non :
- Tu fais un p'tit script JS qui est sur la page et qui regarde un certain fichier, si la valeur du fichier change alors : windows.location.reload();
- Sinon rien
C'est pas beau, c'est moche, c'est même dégueulasse mais sa fonctionne.
Après essaye de voir si y'a pas mieux, mais sinon tu peux reprendre le raisonnement suivant !
j'ai tellement de trucs a faire la propreté du code ne me dérange pas x) je verrais ça une fois que tout sera fini, la j'aimerais juste que ça fonctionne et comprendre commet ça fonctionne.
Tu peux me montrer comment ça fonctionne ? j'ai du mal à voir le fonctionnement.
Donc la fonction que j'ai mis plus haut ce n'est pas du tout le bon type de fonctionnement ?
Tu peux me montrer comment ça fonctionne ? j'ai du mal à voir le fonctionnement.
Donc la fonction que j'ai mis plus haut ce n'est pas du tout le bon type de fonctionnement ?
$(document).ready(function(){ // A mettre quelque part sur ta page ou se trouvent les commentaires
function refresh() {
$.ajax({
url: "tonScriptPhp.php",
cache: false
})
.done(function (varCheck) {
if(varCheck=== "newPost")
windows.location.reload();
});
if((new Date().getTime() - time >= 180000)) {
setTimeout(refresh, 3000); // Timer du refresh, ici toutes les 3 secondes
}
setTimeout(refresh, 3000);
});
C'pour l'ajax, ensuite dans ton script php :
<?php
$fichierCheck = fopen('fichierCheck.txt', 'r+');
fseek($fichierCheck , "newPost");
$varCheck = fgets($fichierCheck);
echo $varCheck; // en gros tu return varCheck qui est en php pour que ton JS puisse le prendre
fseek($fichierCheck, "newPost"); // Puis tu réécris le message "normal" dans ton fichier pour pas qu'il te boucle en chaîne
fputs($fichierCheck, "oldPost");
fclose($fichierCheck);
?>
Mais pour que ça fonctionne faut que tu écrives quelque chose dans le fichier à chaque post de commentaire et que tu le changes après ta lecture, sinon tu seras redirigé en boucle.
Normalement si tu adapte bien ton code avec celui que je viens de te passer y'a pas trop de soucis.