Bug związany z interpolacją głosów przy postach.

3

Zauważyłem dziwny bug przy liczniku.

Wydaje mi się, że jest związany z tym że front interpoluje wyniki głosów. Jeśli gość ma 2 punkty, i klikam głos, to front zmienia to na 3, nie zależnie od tego czy autor posta faktycznie ma te 3 głosy czy nie. Pewnie jest to zrobione po to żeby zapewnić wrażenie szybkości działania licznika, nie czekając na response Ajaxa.

Ale to prowadzi do takiego zachowania:
bug.gif

Raz na jakiś czas są zaliczane głosy, 0, 2, 3, 1. liczba pierwsza to interpolacja frontowa, późniejszy głos to wynik jak przyjdzie Ajax.

Interpolacja jest spoko, fajnie że ktoś miał taki pomysł; ale można by zrobić tak że taki bug się pojawi raz na wystąpienie strony? Tzn jak przyjdzie ajax, to początkowy licznik się jakoś zresetuje?

Reprodukcja buga:

  • Otwórz jeden wątek w dwóch kartach
  • Na jednej daj głos
  • Otwórz drugą kartę
  • Klikaj ikonkę plusika
2

Potwierdzam ten problem z głosowaniem – Firefox Browser 91.0.1 (64-bit). Nie wiem, czy kwalifikuje się on jako bug, czy jako zachowanie oczekiwane (choć nieintuicyjne). Opiszę swoje kroki:

  1. Otworzyłem ten wątek w dwóch kartach.
  2. Zagłosowałem na pierwszy post w karcie nr 1. Licznik w tej karcie otrzymał wartość 1; moja nazwa użytkownika zaczęła pojawiać się na liście głosów; ikona łapki zmieniła kolor na zielony.
  3. Spojrzałem na kartę nr 2. Licznik na tej karcie wskazywał tak samo (1 głos); moja nazwa użytkownika pojawiała się na liście głosów; ikona łapki nie miała koloru zielonego.
  4. Zagłosowałem na pierwszy post w karcie nr 2. Licznik w tej karcie najpierw zmienił wartość z 1 na 2, a potem z 2 na 0; moja nazwa użytkownika przestała pojawiać się na liście głosów; ikona łapki otrzymała kolor zielony.
  5. Zagłosowałem ponownie na pierwszy post w karcie nr 2. Licznik w tej karcie najpierw zmienił wartość z 0 na -1 (sic!), a następnie z -1 na 1; moja nazwa użytkownika zaczęła znów pojawiać się na liście głosów; ikona łapki utraciła kolor zielony.
1

Tak, tu mamy sytuacje z synchronizacją licznika głosów pomiędzy oknami. Na mikroblogu synchronizacja samego licznika została zrobiona, ale brakuje jeszcze jednej rzeczy: nie wnikając w szczegóły, nie jest przesyłana informacja że to właśnie ja oddałem głos na dany wpis. Przez to powstają właśnie takie kwiatki. Właśnie siedzę nad kodem...

5

Ok, dodana została synchronizacja głosów, również na forum. Można potestować na 4programmers.dev (nie ma jeszcze na produkcji).

0
Adam Boduch napisał(a):

Ok, dodana została synchronizacja głosów, również na forum. Można potestować na 4programmers.dev (nie ma jeszcze na produkcji).

Dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1