10-09-2020, 09:42 AM
Le "message lu", logiquement, je dirai que c'est une table du style id_message id_joueur indiquant que le joueur a lu le message (pour les messageries privées) ou id_topic id_joueur id_last_message_seen[ou date_last_seen éventuellement, si les IDs ne sont pas incrémentaux] pour des messages groupés par sujets. Cela permet de savoir qui a lu quel message, et s'il n'y a pas d'entrée dans la 1ere table (ou si l'entrée dans la 2e table n'est pas à la bonne date/n'est pas l'id du dernier message pour le 2nd modèle) alors le message n'a pas été lu (et une icone différente est utilisée, ou la même icone avec un effet CSS)
Si c'est côté client uniquement, et vu que (de mémoire) t'es en mono-page, alors tu peux simplement mettre le logo "message non lu" quand ton appli reçoit un message, et considéré tous les messages qui sont arrivés quand l'appli a chargé comme "déjà lus" (si tu n'as pas de backend côté serveur). Autre piste (à défaut de backend aussi), tu peux stocker la date de dernière lecture de chaque guilde côté client, et te baser là dessus pour savoir ce qui a été lu au chargement de l'appli.
Si tu le fais dans une page indépendante, tu as le localStorage qui est "cross onglet pour un même domaine". Tu as aussi les "Broadcast channel" je crois pour faire causer des onglets entre eux, mais ca me semble inadapté.
Si c'est côté client uniquement, et vu que (de mémoire) t'es en mono-page, alors tu peux simplement mettre le logo "message non lu" quand ton appli reçoit un message, et considéré tous les messages qui sont arrivés quand l'appli a chargé comme "déjà lus" (si tu n'as pas de backend côté serveur). Autre piste (à défaut de backend aussi), tu peux stocker la date de dernière lecture de chaque guilde côté client, et te baser là dessus pour savoir ce qui a été lu au chargement de l'appli.
Si tu le fais dans une page indépendante, tu as le localStorage qui est "cross onglet pour un même domaine". Tu as aussi les "Broadcast channel" je crois pour faire causer des onglets entre eux, mais ca me semble inadapté.