problème de rafraîchissement

Le
docanski
Bonjour les anciens du code ;-)

J'ai un problème que je n'arrive pas à résoudre avec un script de
rafraîchissement de la fenêtre d'un chat dont voici le code complet, y
compris celui de la page php :

<html>
<meta http-equiv="refresh" content="6">
<head>
<title>chat</title>
<link href=style.css rel=stylesheet type=text/css>
<script language=javascript>
<!--
var lapagemagique4=6;
var lapagemagique5=" - "+document.title;
function lapagemagique6() {
if (lapagemagique4>=0)
lapagemagique4=lapagemagique4 - 1
var timeout=setTimeout("lapagemagique6()", 1000)
document.title=lapagemagique4+lapagemagique5
}
lapagemagique6()
//-->
</script>
</head>
<body>
<?php include("chat.txt"); ?>
</body>
</html>

Le problème est simple dans son énoncé mais apparemment pas dans sa
solution : chaque fois qu'un nouveau message est envoyé par un
intervenant, la page se rafraîchit, évidemment, mais remonte tout au
début de la séance et ne met donc pas le focus sur les dernières lignes
comprenant ce nouveau message.
Quelqu'un peut me dépanner sur ce coup ? Merci d'avance.

Cordialement,
--
docanski

Portail et annuaire du nord-Bretagne : http://armorance.free.fr/
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
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
yamo'
Le #25303052
Salut,

docanski a tapoté, le 24/03/2013 21:40:
mais remonte tout au
début de la séance et ne met donc pas le focus sur les dernières lignes
comprenant ce nouveau message.



Et en mettant tout bêtement une ancre? Et en appelant dans le refresh
mapage.php#monancre

--
Stéphane BOFH excuse #244:

Your cat tried to eat the mouse.
Olivier Miakinen
Le #25303182
Le 25/03/2013 10:29, yamo' répondait à docanski :

mais remonte tout au
début de la séance et ne met donc pas le focus sur les dernières lignes
comprenant ce nouveau message.



Et en mettant tout bêtement une ancre? Et en appelant dans le refresh
mapage.php#monancre



Ça marchera certainement. Cela dit, je ne sais pas ce qu'en pensera
docanski, mais moi je trouve que du point de vue de l'utilisateur ce
n'est peut-être pas génial... Je n'ai pas l'habitude des tchats, mais
pour une page web normale à laquelle j'ai accédé sans ancre, j'aime
bien revenir au début de la page quand je la rafraîchis moi-même.

Du coup, un code Javascript serait peut-être préférable (même si je
précise que je ne sais pas le faire).

P.-S. : docanski, l'élément script n'a plus d'attribut language,
et tu devrais remplacer :
<script language=javascript>
par :
<script type="text/javascript">

Cordialement,
--
Olivier Miakinen
docanski
Le #25303372
Alors que les eleveurs et agriculteurs empoisonnent toujours la
Bretagne, Olivier Miakinen ecrit ce qui suit en ce 25/03/2013 12:43 :

Et en mettant tout bêtement une ancre? Et en appelant dans le refresh
mapage.php#monancre



Ça marchera certainement.
P.-S. : docanski, l'élément script n'a plus d'attribut language,
et tu devrais remplacer :
<script language=javascript>
par :
<script type="text/javascript">



Attention : ce n'est pas la page qui se rafraîchit et donc pas son
"ascenseur" mais celui de la fenêtre du chat qui contient son propre
"scrollbar" et c'est celui-ci que je chercher à régler pour qu'il ne
remonte pas au début des messages à chaque "refresh".
Olivier : oui, tu as raison, je n'avais pas fait attention en déterrant
ce vieux script.

Cordialement,
--
docanski

Portail et annuaire du nord-Bretagne : http://armorance.free.fr/
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
SAM
Le #25303732
Le 25/03/13 14:27, docanski a écrit :
Alors que les eleveurs et agriculteurs empoisonnent toujours la
Bretagne, Olivier Miakinen ecrit ce qui suit en ce 25/03/2013 12:43 :

Et en mettant tout bêtement une ancre? Et en appelant dans le refresh
mapage.php#monancre



Ça marchera certainement.
P.-S. : docanski, l'élément script n'a plus d'attribut language,
et tu devrais remplacer :
<script language=javascript>
par :
<script type="text/javascript">



Attention : ce n'est pas la page qui se rafraîchit et donc pas son
"ascenseur" mais celui de la fenêtre du chat qui contient son propre
"scrollbar"



J'a rien compris !

J'ai vu du code :

<html>
<meta http-equiv="refresh" content="6">
<head>
<title>chat</title>
<script language=javascript>


c'est celui de la page ou celui du chat ?

Si c'est celui de la page c'est bien là qu'il y a :
- le rafraichissement (meta reftresh toutes les 6 s) de la page donc
- le javascript languagé

Si c'est celui du chat
he ben ... que change-ce ?

et c'est celui-ci que je chercher à régler pour qu'il ne
remonte pas au début des messages à chaque "refresh".



tu n'as qu'à mettre les messages rangés dans l'autre sens,
et hop!

il faut refaire le tchat en JS (ou en PHP) de manière à ce qu'il n'y ait
que 3 ou 4 (disons 6) échanges
et ... re-hop!

L'idée de l'ancre, à mon sens, n'est pas mauvaise.
Les échanges sont tous positionnés avant un truc-machin qui a une ancre
(ou un ID) comme #footer ou #pied-de-page, par exemple.
Et on refresh/rafraichit sur cet exemple.

Olivier : oui, tu as raison, je n'avais pas fait attention en déterrant
ce vieux script.



Rhalala !

Un bidule qui arrive à mettre -1 dans le titre de la page (et fenêtre)
Ha! Non ! si le html et le JS arrivent à s'accorder le -1 ne se verra
pas, la page aura relaodé.

Cordialement,



itou
--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
docanski
Le #25303792
Alors que les eleveurs et agriculteurs empoisonnent toujours la
Bretagne, SAM ecrit ce qui suit en ce 25/03/2013 19:02 :


<html>
<meta http-equiv="refresh" content="6">
<head>
<title>chat</title>
<script language=javascript>

c'est celui de la page ou celui du chat ?



C'est le code complet de la page contenant le chat, le "chat.txt"
comportant les messages déjà publiés

Si c'est celui du chat
he ben ... que change-ce ?



Dans le cas de la page, rien.
Dans la fenêtre du chat, lorsque je place un "overflow", le
rafraîchissement provoque automatiquement la remontée du "scrollbar",
alors que les derniers messages se trouvent au bas de la fenêtre.
Résultat : il faut chaque fois activer l'ascenseur pour remonter les
derniers messages afin qu'ils soient affichés.

tu n'as qu'à mettre les messages rangés dans l'autre sens,
et hop!



Là, je ne vois pas trop comment. Une suggestion ?

il faut refaire le tchat en JS (ou en PHP) de manière à ce qu'il n'y ait
que 3 ou 4 (disons 6) échanges
et ... re-hop!



Trop peu. La fenêtre de chat affiche environ 40 messages mais le
chat.txt en contient un maximum de 200 (choix arbitraire) et ces 200
sont donc tous lisibles dans cette fenêtre, à condition d'actionner
l'ascenceur. Ces messages sont actuellement placés dans un ordre
descendant, le plus ancien au dessus, le plus récent en dessous.

L'idée de l'ancre, à mon sens, n'est pas mauvaise.



Sauf que le scroll e se fait pas dans la page mais dans la fenêtre.

itou



Rebelote,
--
docanski

Portail et annuaire du nord-Bretagne : http://armorance.free.fr/
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
docanski
Le #25303782
Alors que les eleveurs et agriculteurs empoisonnent toujours la
Bretagne, docanski ecrit ce qui suit en ce 25/03/2013 19:57 :

C'est le code complet de la page contenant le chat, le "chat.txt"
comportant les messages déjà publiés



Enfin ... pas vraiment : ce code est appelé par la page contenant la
fenêtre de chat.

Rebelote,


--
docanski

Portail et annuaire du nord-Bretagne : http://armorance.free.fr/
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
SAM
Le #25304072
Le 25/03/13 19:57, docanski a écrit :
Alors que les eleveurs et agriculteurs empoisonnent toujours la
Bretagne, SAM ecrit ce qui suit en ce 25/03/2013 19:02 :


<html>
<meta http-equiv="refresh" content="6">
<head>
<title>chat</title>
<script language=javascript>

c'est celui de la page ou celui du chat ?



C'est le code complet de la page contenant le chat, le "chat.txt"
comportant les messages déjà publiés

Si c'est celui du chat
he ben ... que change-ce ?



Dans le cas de la page, rien.
Dans la fenêtre du chat, lorsque je place un "overflow", le
rafraîchissement provoque automatiquement la remontée du "scrollbar",
alors que les derniers messages se trouvent au bas de la fenêtre.
Résultat : il faut chaque fois activer l'ascenseur pour remonter les
derniers messages afin qu'ils soient affichés.

tu n'as qu'à mettre les messages rangés dans l'autre sens,
et hop!



Là, je ne vois pas trop comment. Une suggestion ?



var txt = document.getElementById('monTchat'),
mesg = txt.innerHTML.split(/[rn]/),
n = mesg.length;
txt.innerHTML = '';
while (n--) txt.innerHTML += mesg[n] + n;


il faut refaire le tchat en JS (ou en PHP) de manière à ce qu'il n'y ait
que 3 ou 4 (disons 6) échanges
et ... re-hop!



Trop peu.



????
me semble bien que non
que ça doit bien suffire à la comprenette de l'échange
mébon ...

... perso, j'ai horreur des tchats,
je ne supporte pas ça !
horripile
boutons
toussa

La fenêtre de chat affiche environ 40 messages



???
comment peux-tu assurer ça ?
Les gensses tournent leurs écrans verticalement ?
En + d'être énervant y a même pas un peu d'air entre les "messages" ?

mais le chat.txt en contient un maximum de 200 (choix arbitraire) et ces 200
sont donc tous lisibles dans cette fenêtre, à condition d'actionner
l'ascenceur. Ces messages sont actuellement placés dans un ordre
descendant, le plus ancien au dessus, le plus récent en dessous.

L'idée de l'ancre, à mon sens, n'est pas mauvaise.



Sauf que le scroll e se fait pas dans la page mais dans la fenêtre.




considérons que la "fenêtre" n'est qu'un "calque" (un div ?)
et t'alors ?
y a vraiment pas moyen de coller une ancre là en bas du txt ?

Je n'ai pas re-essayé (et certainement pas avec IE) mais ... je crois
bien que ça fonctionne.


Sinon, un truc en JS ?

onload = function() {
var leTchat = document.getElementById('monTchat');
leTchat.style.marginTop = leTchat.parentNode.offsetHeight -
leTchat.offsetHeight + 'px';
}




--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
SAM
Le #25304082
Le 26/03/13 01:57, SAM a écrit :

var txt = document.getElementById('monTchat'),
mesg = txt.innerHTML.split(/[rn]/),
n = mesg.length;
txt.innerHTML = '';
while (n--) txt.innerHTML += mesg[n] + n;



while (n--) txt.innerHTML += mesg[n] + 'n';

bien évidemment !

--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
docanski
Le #25304432
Alors que les eleveurs et agriculteurs empoisonnent toujours la
Bretagne, SAM ecrit ce qui suit en ce 26/03/2013 01:57 :

Trop peu.



????
me semble bien que non
que ça doit bien suffire à la comprenette de l'échange
mébon ...



Les arrivants doivent pouvoir voir les messages précédents afin de
pouvoir intervenir dans les discussions en connaissance de cause. Ainsi,
il faut parfois pouvoir remonter à 2 heures voire plus, selon la
fréquentation du jour.

La fenêtre de chat affiche environ 40 messages


comment peux-tu assurer ça ?
Les gensses tournent leurs écrans verticalement ?



Naaan. Les messages sont stockés provisoirement dans un chat.txt ce
fichier remplace en fait une BdD.
Pour plus de clarté quant à l'affichage, voici le code de la page :

<html>
<head>
<title>chat</title>
function smiley(remplacer) {
document.send.msg.value=document.send.msg.value + remplacer
}
</script>
</head>
<body topmargin=5 style="background-color:1e1385">
<center>
<div style="border:2px solid gold;width:754px">
<table widthu0 cellpadding=0 cellspacing=0 color=white class="tableaux">
<tr><td><iframe id=messages widthu0 heighte7 frameborder=0
align«smiddle scrolling=no src=rafraichir.php></iframe>
<input type=hidden name=name value="">
<input type=text name=msg size5 class=pseudo maxlength0>
<div style="text-align:center"><input type=submit value=envoyer
class=boutons></div>
</td></tr></table>
</form>
</div>
</body>
</html>

Ne hurle pas, c'est du code pas très propre et pas épuré datant de plus
de 10 ans et que je devais remettre à jour pour mon site d'aide à la
création. C'est tombé à l'eau, j'ai abandonné car on ne voit plus que
des blogs maintenant.

considérons que la "fenêtre" n'est qu'un "calque" (un div ?)



Comme tu vois, c'est un iframe.
Le dernier message est toujours situé en bas.

y a vraiment pas moyen de coller une ancre là en bas du txt ?



Je ne vois pas comment vu que les messages sont stockés dans un fichier txt.
Et puis je dois avouer que je n'ai plus pioché depuis longtemps dans le
code, la mémoire n'y est plus, je n'ai plus de repères. L'âge, quoi :-(
Ici, c'est pour faire plaisir à une bande de copains que j'ai déterré
ces vieilles pages que j'ai mises bout à bout pour bricoler un chat vite
fait ... plus ou moins mal fait.

Cordialement,
--
docanski

Portail et annuaire du nord-Bretagne : http://armorance.free.fr/
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
SAM
Le #25304482
Le 26/03/13 11:06, docanski a écrit :
Alors que les eleveurs et agriculteurs empoisonnent toujours la
Bretagne, SAM ecrit ce qui suit en ce 26/03/2013 01:57 :

Trop peu.



????
me semble bien que non
que ça doit bien suffire à la comprenette de l'échange
mébon ...



Les arrivants doivent pouvoir voir les messages précédents afin de
pouvoir intervenir dans les discussions en connaissance de cause. Ainsi,
il faut parfois pouvoir remonter à 2 heures voire plus, selon la
fréquentation du jour.



est-ce que c'est encore un Tchat ?
N'est-ce pas presqu'un forum ?

La fenêtre de chat affiche environ 40 messages


comment peux-tu assurer ça ?
Les gensses tournent leurs écrans verticalement ?



Naaan. Les messages sont stockés provisoirement dans un chat.txt ce
fichier remplace en fait une BdD.



J'espère que ton site n'est pas chez Free !?
cette méthode y est interdite !

Pour plus de clarté quant à l'affichage, voici le code de la page :



Ha? ce n'est plus celui donné précédemment ?

J'y vois une iframe de 657px de haut
dont j'ignore ce qu'elle contient ...
(dans un tableau ... pourquoi un table ? mafouée)
... en tous cas rien qui puisse assurer que ça contiendra les 16 messages

Suivi de ce qu'il semble être le truc pour communiquer ses pensées (un form)

Ne hurle pas,



HHHhhhAAAaarrrrggg !
Ouf! Ça fait du bien.

c'est du code pas très propre



c'est rien d'le dire

et pas épuré datant de plus de 10 ans



ce qu'on pouvait bricoler tt de même au siècle dernier !

Comme tu vois, c'est un iframe.



Youpi! J'avais bon !

Le dernier message est toujours situé en bas.

y a vraiment pas moyen de coller une ancre là en bas du txt ?



Je ne vois pas comment vu que les messages sont stockés dans un fichier
txt.



J'a rien compris là !
J'ai vu :
<iframe src=rafraichir.php
c'est donc un fichier php, non ?
ce fichier lit/intègre le fichier txt (auquel il a préalablement ajouté
le dernier message, sauf à ce que ce fut fait par le form, par le
fichier "messages.php")
mis sans doute dans un <pre></pre>
Il doit suffire d'ajouter ensuite l'ancre
echo "<a name='celepied'></a>";

Et puis je dois avouer que je n'ai plus pioché depuis longtemps dans le
code, la mémoire n'y est plus, je n'ai plus de repères. L'âge, quoi :-(



Tant que ça ?

Ici, c'est pour faire plaisir à une bande de copains que j'ai déterré
ces vieilles pages que j'ai mises bout à bout pour bricoler un chat vite
fait ... plus ou moins mal fait.



Je te mail un truc — sans iframe, lui — rangé en ordre inverse
(aussi à l'abandon depuis le siècle dernier)


--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
Publicité
Poster une réponse
Anonyme