Szukaj:
Strona Forum   Wybierz
Wybierz
Uwaga! Przeglądasz stronę jako gość!      Zaloguj się      Załóż nowe konto

×

V4 ;)
Domka Użytkownik jest offline
Postów: 2061
Ostrzeżenia: 0%  
Domka
25282 Wysłany: 26 Lut 08 13:46 • Temat postu: V4 ;)
Gnysek, dałoby się zmienić na nowym serwisie posty nieprzeczytane? Głównie chodzi mi o to, że jak piszę nowy post, to żeby uznało mi go za przeczytane, muszę go drugi raz zobaczyć i to trochę denerwujące jest czasem Na niektorych forach jest tak, że twoje posty od razu uznaje za przeczytane. Można to też załatwić u nas?

____________________

[obrazek]
[obrazek]
Reklamy
gnysek Użytkownik jest offline
Postów: 2561
Ostrzeżenia: 0%  
gnysekhttp://hmt.pl
25309 Wysłany: 26 Lut 08 21:51 • Temat postu:
Przecież tak jest. Jak dodasz posta, to faktycznie widnieje ikonka nieprzeczytany przy nim, ale w ciasteczkach jest już zapisany jako przeczytany, bo tak działa system. Dokładnie działa to tak:
W ciasteczku zapisana jest data w czasie UNIX (czyli sekundy od 1970 roku), kiedy ostatnio zaglądaliśmy do danego tematu. Gdy otwierasz temat, to dane z tego ciasteczka są pobierane do pewnej zmiennej i od razu zapisywany jest nowy czas. Dopiero wtedy następuje przetworzenie całego tematu i porównanie dat. Jeżeli jakaś jest świeższa od tej pobranej z ciasteczka, lub w ciasteczku nie było żadnej to odpowiednio są oznaczane posty nieczytane od ostatniej wizyty, lub nieczytane od ostatniego wyświetlenia tego tematu. Dlatego gdy dodajesz nowego posta, to jest on zaznaczony jako nieczytany, ale gdy wrócisz na listę tematów, bądź odświeżysz stronę, to jest on widoczny jako przeczytany.
Natomiast zdarza się taka sytuacja jak mówisz. A zdarza sie wtedy gdy napiszesz posta i zamkniesz przeglądarkę. Portal jest skonstruowany tak, że każdy ma swoją sesję, która jest uaktualniana nie częściej niż co minutę, gdy cokolwiek na niej zrobimy (klikamy łącze/odświeżamy). Gdy się logujemy czas ten oznaczany jest jako czas ostatniej wizyty. Oznacza to, że gdy dodamy posta i zamkniemy przeglądarkę i potem ponownie ją włączymy wchodząc na HMT, czas naszej ostatniej wizyty będzie się mieścił między 1 a 59 sekund PRZED napisaniem tego posta - dlatego będzie on widoczny jako nieczytany i dla tego są to "posty od ostatniej wizyty" a nie "posty nieczytane". Niestety nie da się na to nic poradzić, a uaktualnianie sesji częściej niż co minutę powoduje znaczący wzrost obciążenia bazy danych (gdy pisałem pierwszy system i odświeżanie sesji odbywało się co przeładowanie strony, to nawet jednemu użytkownik był w stanie doprowadzić serwer do przeciążenia, w rezultacie zamiast strony pokazywało się białe tło). Praktycznie ten sam system w phpBB2 zastosowano. Kiedyś zapisywałem nieczytane posty w bazie danych, ale przy 4000 userów mieliśmy prawie 15mb danych tygodniowo nowych w bazie danych i forum wczytywało się nawet 3 sekundy, dlatego dokonałem zmiany na obecny system.

Jak omijać ten problem? Po napisaniu posta pokręcić sie jeszcze przez minutę po HMT

Btw. wpadłem teraz na pomysł, aby w nieczytanych postach po zalogowaniu omijało nasze posty dodane nie później niż minutę po ostatniej wizycie - zobaczę, czy da się to wprowadzić.

Ostatnio edytowany Wtorek, 26 Lutego 2008, w całości zmieniany 5 raz(y).
© 2003 - 2024 HMT. Design & Code by gnysek.pl. Wszelkie prawa zastrzeżone.