8768 sujets

Développement web côté serveur, CMS

Bien le bonsoir !

J'aimerais créer un système de notification en utilisant de l'AJAX et je me suis posé une question. Par exemple, si un utilisateur X clique sur un bouton, l'utilisateur Y voit (sans recharger la page) un petit "1" s'afficher sur sa page , est-il possible de faire cela ?

La seule chose que j'ai faite pour l'instant sur mon site internet est d'afficher des données à l'utilisateur X qui clique sur le bouton et non à l'utilisateur Y.

Merci aux personnes qui prendront le temps de me répondre Smiley cligne
Modifié par heraclys (12 Jan 2021 - 18:26)
Hello,

Oui tu peux tout à fait le faire, mail il te faut un bout de PHP pour écrire dans un fichier ( coté serveur donc ) et un autre petit bout pour le lire.

Dans ta page ( html suffit, pas besoin de php ici si tu passe par un ajax ):
_ Une fonction Ajax qui se lance toutes les X secondes
l'ajax appelle un PHP qui va lire un fichier .txt ou autre et affiche le contenu dans un éléments html
_ Une autre fonction ajax appelée par ton bouton
l'ajax appelle un PHP qui va écrire quelque chose dans ton fichier ( ici tu veux "1" )

Voilà sur le principe, si besoin de code n'hésites pas Smiley cligne
Meilleure solution
Hmm je vois,

J'ai deux question, premièrement, le fait de lancer une fonction Ajax toutes les X secondes ne va pas ralentir mon site ?
Deuxièmement, je stocke dans le fichier .txt la notification par exemple "X utilisateur a répondu à X sujet" ?
heraclys a écrit :
le fait de lancer une fonction Ajax toutes les X secondes ne va pas ralentir mon site ?

Ajax étant asynchrone ça ne ralenti rien du tout Smiley biggrin

Et oui tu met ce que tu veux dans le fichier, tu peux surtout en faire un json et le parser pour avoir plusieurs valeurs !!
Je voiis ! Autre petite question, si par exemple il y a 10 000 notifications dans le fichier .txt, c'est pas grave ?
Oui peu importe, après selon la taille des données que tu as et le genre, tu peux très bien imaginer de partager en plusieurs fichiers.
Même si le fichier est volumineux ( 10.000 mots par exemple c'est très peu ) ce n'est pas grave, un fichier c'est rapide à lire et à parser, et comme dit plus haut c'est de l'asynchrone donc les données seront insérés quand elles seront dispo, ça n’empêche en rien l'exécution d'autre chose.
Modérateur
Bonjour,

Si tu veux absolument faire de l'AJAX, ce que propose stryk est effectivement une possibilité.

Mais faire de l'AJAX pour rafraîchir les pages de tous les clients, c'est quand même assez inefficace parce que ça oblige tous ces clients à interroger le serveur à intervalle régulier. Le fait que ce soit en asynchrone ne change pas grand chose au problème : il faudra bien faire toutes ces requêtes.

Si tu n'as pas beaucoup de visiteurs, ça peut passer. Mais si t'en as pas mal, et/ou qui passent beaucoup de temps sur le site et/ou si la fréquence de rafraîchissement est élevée, ça peut devenir problématique.

Tout ça est évidemment très dépendant de la solution d'hébergement du site aussi.

Dans ton cas, il est probable que les Server Sent Events (SSE) soient plus indiqués que de l'AJAX.

Amicalement,
Modifié par parsimonhi (13 Jan 2021 - 09:29)