Po stronie usera czy przeglądarki? |
Po stronie usera czy przeglądarki? |
4.04.2022, 20:52:31
Post
#1
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 0 Dołączył: 18.09.2021 Ostrzeżenie: (0%) |
Mam na stronie system powaidomień. Taki dzwoneczek z liczbą który po najechaniu pokazuje kontener o nazwie "powiadomienia". Wszystko aktualizuje się AJAXem w tle żeby user zawsze na bierząco widział ilość powiadomień. I teraz moje pytanie. Na chwilę obecną zrobiłem JSONa którego pobiera user. Wygląda on mniej więcej tak:
Kod "0": { "name": "Powiadomienie pierwsze", "text": "Wszystko OK", "date": "2022-03-31 11:25:55", "icon": "icon1.png", "seen", false }, "1": { "name": "Powiadomienie drugie", "text": "Ktoś coś sknocił", "date": "2022-03-31 14:43:30", "icon": "icon2.png", "seen", true }, I tak się zastanawiam, czy "parsować" tego JSONa po stronie użytkownika, tzn jeśli seen == false dawać całosć w <b>, jeśli icon2.png (ikonka z wykrzyknikiem) to dawać całość czerowną czcionką, itd itp czy od razu zwrócić użytkownikowi HTML do wyświetlenia? Które rozwiązanie lepiej wybrać i któ©e ma jakie plusy? Jedyne co zauważyłem, to że jeśli chciałbym prezentować datę w stylu "4 dni temu" albo 2h 31 minut temu i chciałbym, żeby to się na berzącoaktualizowało to i tak musze użyć JS. Jakieś inne różnice? |
|
|
5.04.2022, 05:11:43
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 373 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Przecież i tak pobierasz to w js. A do takiej komunikacji lepiej nadają się server-sent events.
-------------------- |
|
|
6.04.2022, 23:04:37
Post
#3
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 0 Dołączył: 18.09.2021 Ostrzeżenie: (0%) |
Jeszcze jedno pytanko. Jak to posortować po dacie? Dodam, ze ORDER BY w MySQLu nie wchodzi w rachubę bo powiadomienia brane są z trzech różnych tabel. Jedynym wspólnym mianownikiem jest data w takim samym formacie.
|
|
|
7.04.2022, 07:26:36
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 783 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Jeśli wyniki są łączone na poziomie PHP: https://www.php.net/manual/en/function.usort.php
Jeśli możesz połączyć wyniki na poziomie MySQL, to użyj UNION ALL oraz ORDER BY. -------------------- |
|
|
7.04.2022, 09:39:44
Post
#5
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 0 Dołączył: 18.09.2021 Ostrzeżenie: (0%) |
Myślałem na UNIONem ale przed złączeniem muszę nieco inaczej obrobić dane z tabeliA niż z tabeliB. Taki kod zadziałał:
Dzięki! Edit. Nie wiedziałem, jak zrobić, żeby ta funkcja sortowała po dacie ale malejąco więc zrobiłem obejście: Teraz zostaje mi po stronie usera zrobienie dla kazdego powiadomieniaczegoś w stylu: Próbowałem się przejechać po każdym elemencie zgodnie z tym poradnikiem https://zetcode.com/javascript/jsonforeach/ ale nie działa. Ktoś mógłby podrzucić coś działającego? Ten post edytował DNMX 7.04.2022, 10:41:37 |
|
|
Wersja Lo-Fi | Aktualny czas: 26.09.2024 - 11:31 |