Sur la liste utilisateurs shoutbox, on aperçoit un petit chiffre exprimé en secondes à côté du pseudo des gens.
Ce chiffre fait partie des features obscures de spontex, qui ne servent à rien mais qui font qu'on en apprend encore un peu plus chaque jour.
Pour les pressés : ce chiffre permet de déduire la réactivité de l'utilisateur sur la shoutbox. Si 60s est précisé, attendez au moins 60secs avant de vous dire “il m'ignore”.
Historique
La shoutbox est un chat en Javascript. Ce n'est pas du “push”, ce qui fait que quelle que soit l'activité sur la shoutbox (silence ou explosion de messages), chaque visiteur interroge à intervalle régulier le site.
Chaque interrogation du site “coûte” (en charge serveur). Donc il faut pas en faire trop. Si le mec est sur la shoutbox depuis 2h, il y a fort à supposer qu'il ne soit pas immobile devant sa fenêtre… à quoi bon charger le serveur pour un absent ?
C'est ce qui me pousse à ralentir de délai de rafraichissement au fur et à mesure de l'inactivité.
Première solution
Historiquement, à chaque activité sur la shoutbox (le jeune recharge la page ou poste un message), le compteur passe à 1 seconde.
à chaque fois que le compteur passe à 0, il est incrémenté d'une seconde.
(temps) (état du compteur) (action/commentaire)
1 1 le compteur vient d'être initialisé !
2 0->1+1 = 2 On est à 0, on va chercher les messages et on incrémente.
3 1 rien
4 0->2+1 = 3 On est à 0, on va chercher les messages et on incrémente.
5 2
6 1
7 0->3+1 = 4 On est à 0, on va chercher les messages et on incrémente.
8 3
9 2
10 1
11 0->4+1 = 5 On est à 0, on va chercher les messages et on incrémente.
12 4
13 3
14 2
15 1
16 0--> 6
etc.
Ainsi, au bout de 16 secondes, on est allé chercher 5 fois les messages, et ça ralentit de plus en plus.
Dans la liste des utilisateurs, c'est le “compteur” qui est affiché. Donc il permet de savoir non pas le temps depuis lequel la personne est là mais bien le temps que la personne mettra pour lire le message. Au bout de 17 secondes, le jeune affichait donc 6.
Modification
Ce sytème était assez efficace d'un point de vue serveur mais c'était pas très user friendly pour le jeune, la shoutbox était trop lente. Donc une méthode plus compliquée a été mise en place, mais le principe est le même. Au lieu d'incrémenter le compteur, on déduit le compteur par une petite fonction mignonne :
function lag_manager ( lag_iter ) {
// Jusqu'à 30 secs, la shoutbox est "à fond" (lag de 3 secs)
if ( lag_iter < 30 )
return 2;
// Jusqu'à 3 minutes, elle est "bien" (lag de 5 secs)
if (lag_iter < 180)
return 4;
// Jusqu'à 10 minutes, elle est "lente" (lag de 10 secs)
if (lag_iter < 600)
return 9;
// jusqu'à 60 minutes, elle est "pas cool" (lag de 60 secs)
if (lag_iter < 3600)
return 59;
// Après, on bloque à 180
return 179;
}
“lag_iter” est le compteur, en seconde, du temps écoulé depuis sa dernière action (poster un message, rafraîchir la page ou cliquer sur “stop” puis “restart”)
Petite note :
si le temps est inférieur à 10, on affiche RIEN comme compteur : ça veut dire “je suis présent”.
Moralité, si un mec a un compteur à 60 (59+1, faut compter le 0 en info) il est là depuis moins d'une heure.
Autre petite note :
Lorsque le jeune a fermé sa page, le compteur représente le MAX entre :
-> délai écoulé depuis sa dernière recherche de messages
-> délai de mise à jour entre deux recherches (3, 5, 10, 60, 180)
Donc ce chiffre là est potentiellement incrémenté d'une seconde par seconde. (donc si vous voyez un mec à 47s de lag, vous savez qu'il est passé et qu'il a quitté la shoutbox depuis 47 secondes car c'est pas un chiffre de la liste)
En résumé :
– s'il est dans la liste (3, 5, 10, 60, 180), le chiffre permet de savoir le délai que mettra un mec à recevoir votre message
– sinon, le chiffre montre le temps depuis lequel le mec n'est PLUS sur la shoutbox.