Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Refresh - Nowa wiadomość
diamondking
post 3.02.2015, 22:04:59
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 7.02.2014

Ostrzeżenie: (0%)
-----


Witam mam na stronie system wiadomości.
Ale to czy jest nowa dowiemy sie dopiero po odświeżeniu strony.
A jak zrobić by automatycznie odświeżała się każda strona kiedy nadejdzie wiadmość ?
Go to the top of the page
+Quote Post
rad11
post 3.02.2015, 22:14:06
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Uzyj AJAXA albo Websocket.
Go to the top of the page
+Quote Post
Dejmien_85
post 4.02.2015, 23:09:03
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 23
Dołączył: 23.04.2013

Ostrzeżenie: (0%)
-----


Tak jak kolega wyżej napisał, masz dwie opcje:

1. Łatwiejsza, AJAX.
Tutaj wykorzystujesz JavęScript, najprościej jest zaciągnąć do tego gotową bibliotekę jQuery (jest bardzo prosta i poznanie podstaw zajmie Ci chwilę).
Koncepcja jest taka, że w przeglądarce odpalasz skrypt JavaScript, który co X czas wykonuje request "w tle", odpytując serwer o nowe wiadomości.
Jeśli są nowe wiadomości, wtedy robisz update widoku (przy pomocy jQuery).

Ustawiasz gdzieś na serwerze skrypt (lub jakiś kontroler jeśli używasz frameworka), następnie przy pomocy jQuery wysyłasz do tego skryptu request
"w tle" (użytkownik tego nie widzi, strona nie jest refreshowana), jQuery odpala skrypt PHP, wtedy PHP zwraca wynik jQuery (to co dasz w returnie, to dojdzie do jQuery),
i decydujesz co zrobić.

2. WebSockety - to już wyższa pierdolencja.
Tutaj utrzymujesz stale połączenie z przeglądarką i na bieżąco otrzymujesz informacje. Ten temat jest troszkę grubszy i musiałbyś się bardziej napracować.

Polecam zacząć od AJAX-a, a później w miarę sił spróbować WebSocketów. ; )

Ten post edytował Dejmien_85 4.02.2015, 23:09:39
Go to the top of the page
+Quote Post
KsaR
post 5.02.2015, 10:41:18
Post #4





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Nie polecam niczego z powyższych jeśli piszesz stronę która powinna być przystosowana także pod urządzenia mobilne, a nie używasz wcześniej na stronie ajax/jQuery to...

Lepiej poczytaj o XMLHttpRequest, na im i tak się opierają w.w. biblioteki (ajax itp) tyle że mniej zamuli.

Ostatnio pisałem taki skrypt i waży mniej niż 0,90 kB po kompresji + nie muli na telefonach nawet.
Przy okazji: lepiej zmieniać tytuł niż odświeżać (document.title='Nowe wiadomości')

Ten post edytował Ksar 5.02.2015, 10:47:51


--------------------
Go to the top of the page
+Quote Post
!*!
post 5.02.2015, 12:50:13
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


@Ksar - już dawno takich bzdur nikt tu nie pisał.

Jest też 3 opcja i nazywa się "long polling".


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
KsaR
post 5.02.2015, 12:55:34
Post #6





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Cytat(!*! @ 5.02.2015, 12:50:13 ) *
@Ksar - już dawno takich bzdur nikt tu nie pisał.

Jest też 3 opcja i nazywa się "long polling".


O ile to o mnie to tak się składa że coraz więcej użytkowników przegląda sieć przez urządzenia mobilne (także ja), i na każdą stronę gdzie wchodzę, a jest jquery - zamula, więc gdzie bzdura?, rozumiem że masz najlepszy sprzęty z internetem LTE i na im testujesz swoje dzieła nie patrząc na innych?

Ten post edytował Ksar 5.02.2015, 12:56:12


--------------------
Go to the top of the page
+Quote Post
!*!
post 5.02.2015, 12:59:57
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


@up - jeśli strona Ci zamula i uważasz, że to wina biblioteki, to prawdopodobnie zrobiłeś coś źle, a nawet bardzo źle.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
KsaR
post 5.02.2015, 13:07:52
Post #8





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Cytat(!*! @ 5.02.2015, 12:59:57 ) *
@up - jeśli strona Ci zamula i uważasz, że to wina biblioteki, to prawdopodobnie zrobiłeś coś źle, a nawet bardzo źle.


Nie piszę że każda... (Np. To forum nie tnie mi w ogóle na chrome-na tablecie),
Jednak są serwisy które mi zacina np. Słynne na tym forum jsfiddle.

A ja pisze strony co nawet na słabych telefonach nie ścinają się.

Łącze do tego mam raczej słabe, ale nawet gdyby to i tak przeglądarki cacheują skrypty, a skoro mi nadal tną takie strony to.....? (Opere mobile raz mi wyłączyło).


--------------------
Go to the top of the page
+Quote Post
!*!
post 5.02.2015, 13:13:35
Post #9





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Tylko, że to nie jest wina biblioteki, ajax/xhr, tylko Twoja, lub osób które pisały te strony, ewentualnie Twojego operatora. Większość osób wpycha JS przed załadowaniem, zamiast PO, a że operują na DOM, to są spowolnienia. Tak samo może być w przypadku usługodawcy który ma problemy z połączeniem się z serwerami jquery lub google, jeśli dałeś JS przed, to czasami nawet nie zobaczysz strony, bo przeglądarka czeka, aż zakończy się żądanie pobierania pliku, ale nie ma to nic wspólnego z biblioteką.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Dejmien_85
post 5.02.2015, 19:28:01
Post #10





Grupa: Zarejestrowani
Postów: 251
Pomógł: 23
Dołączył: 23.04.2013

Ostrzeżenie: (0%)
-----


Oj, Ksar, strzeliłeś sobie w stopę teraz swoimi poglądami. tongue.gif
Go to the top of the page
+Quote Post
KsaR
post 5.02.2015, 23:54:12
Post #11





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Cytat(Dejmien_85 @ 5.02.2015, 19:28:01 ) *
Oj, Ksar, strzeliłeś sobie w stopę teraz swoimi poglądami. tongue.gif


Hehe, i tak jestem zdania że dla średnio(ledwo) rozbudowanych stron lepiej dla jednej rzeczy pliczek 0,90 kB z XH, niż (60~kB?) ajax żeby odświeżyć stronę(i chyba nic więcej?) biggrin.gif co innego gdyby strona była naprawdę dość rozbudowana, i zaincludowanie ajaxa by przyniosło zyski(przy dużej stronie...),
ale nie będę się kłócił z połową forum wink.gif.


--------------------
Go to the top of the page
+Quote Post
Dejmien_85
post 6.02.2015, 06:55:56
Post #12





Grupa: Zarejestrowani
Postów: 251
Pomógł: 23
Dołączył: 23.04.2013

Ostrzeżenie: (0%)
-----


Cytat(Ksar @ 5.02.2015, 23:54:12 ) *
Hehe, i tak jestem zdania że dla średnio(ledwo) rozbudowanych stron lepiej dla jednej rzeczy pliczek 0,90 kB z XH, niż (60~kB?) ajax żeby odświeżyć stronę(i chyba nic więcej?) biggrin.gif co innego gdyby strona była naprawdę dość rozbudowana, i zaincludowanie ajaxa by przyniosło zyski(przy dużej stronie...),
ale nie będę się kłócił z połową forum wink.gif.


Nie będę ukrywał tego, że masz rację jeśli chodzi o wydajność - zgadzam się! ; )

Przesadziłeś tylko z tym, że jQuery jest tak złe. Weź też pod uwagę, że nikt nie wspominał o mobilkach (także dżihad wywołałeś na własne życzenie ; D) i tutaj mamy porady dla początkującego Rambo, także dla niego lepiej będzie użyć jQuery, bo z Vanilla JavaScript może się za bardzo męczyć.

Z doświadczenia wiem, że początkującym trzeba przedstawiać rzeczy dead simple, bo inaczej po prostu mogą nie dać rady, albo się zniechęcić stopniem skomplikowania.

Poza tym, głowa do góry, każdy czasem dostaje baty za poglądy, każdy z nas błądzi. wink.gif
Go to the top of the page
+Quote Post
!*!
post 6.02.2015, 09:39:53
Post #13





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(Ksar @ 5.02.2015, 23:54:12 ) *
Hehe, i tak jestem zdania że dla średnio(ledwo) rozbudowanych stron lepiej dla jednej rzeczy pliczek 0,90 kB z XH, niż (60~kB?) ajax żeby odświeżyć stronę(i chyba nic więcej?) biggrin.gif co innego gdyby strona była naprawdę dość rozbudowana, i zaincludowanie ajaxa by przyniosło zyski(przy dużej stronie...),
ale nie będę się kłócił z połową forum wink.gif.


Po świecie szaleją peta/zotta bajty a ten się o kilka kb martwi wink.gif
Poza tym możesz wydzielić opcję z jquery samego ajaxa i też masz swoje kilka kb z tą różnicą, że masz pewność iż to będzie działać na każdej przeglądarce, bo założę się, że nie testowałeś swojego xhr i tych 0,90kb na np. khtml

Ten post edytował !*! 6.02.2015, 09:40:24


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 8.07.2025 - 04:14