Autor | Zpráva | ||
---|---|---|---|
slon_cz Profil |
#1 · Zasláno: 30. 9. 2017, 05:13:30
Zdravím, toto není úplně téma o radu, spíš by mě zajímalo, kdo z Vás má nějaký vlastní chat, jak u vás funguje aktualizace zpráv?
Já se co jsem se pouštěl do svého, tak funguje skrz php, který naítá zprávy a jednou za 10 sekund pomocí javascriptu aktualizuje zprávy. Bohužel nevím jak vyřešit, aby když scrolluju v chatu dolů, tak při aktualizaci mě to nehodilo zase zpět nahoru. Proto se ptám Vás, co používáte na načítání zpráv Vy? :) |
||
Keeehi Profil |
#2 · Zasláno: 30. 9. 2017, 13:12:17
Když to budeš aktualizovat AJAXem, tak tě to nahoru házet nebude.
slon_cz: „funguje skrz php, který naítá zprávy a jednou za 10 sekund“ Takže to má až deset sekund zpoždění. To je celkem dost. Ten čas se dá udělat variabilní. Když někdo odešle nebo přijme zprávu, tak třeba prvních 5 vteřin se budeš ptát serveru každou vteřinu a pak postupně zpomalíš až na těch 10 vteřin. => Když se v chatu něco děje, tak se aktualizuje častěji aby to bylo co nejvíce živé a naopak když je klid, tak se aktualizuje jen občas, aby tak nezatěžoval server. Existuje postup, kterým se dá dosáhnout téměř okamžité odpovědi aniž by se na server stále posílaly dotazy. Jmenuje se Long Polling. Problém s ní je, že ti pak na serveru běží tolik procesů PHP kolik je zrovna připojených klientů a většina z nich je nečinná a spí. Pokud ti toto nevadí, tak si to můžeš na svém serveru nastavit. Na hostingu to nejspíš nepůjde, jelikož ty mívají limity na počty běžících PHP procesů. Jak se to ale dělá dnes? Pomocí Web Sockets. Vytvoří se obousměrný kanál a pak může posílat zprávy jak klient tak i server. Klient se tak nemusí na nic ptát a server mu jen pošle zprávu zrovna když ji má. Je to čisté a efektivní řešení. Podpora v prohlížečích je dobrá (cca 93 %) a vždy můžeš vytvořit i fallback na AJAXové načítání pokud by jsi chtěl podporovat úplně všechny. Problém s WS je, že je musí podporovat i server. Což opět v případě ze máš vlastní půjde nejspíše zařídit, pokud máš hosting, tak tam můžeš narazit. |
||
Trejpa Profil |
#3 · Zasláno: 30. 9. 2017, 13:50:04
slon_cz:
„Bohužel nevím jak vyřešit, aby když scrolluju v chatu dolů, tak při aktualizaci mě to nehodilo zase zpět nahoru.“ Nejjednodušší je odkazovat se na kotvu (ID) elementu umístěného na konci dokumentu s vypisovaným textem. |
||
Keeehi Profil |
#4 · Zasláno: 30. 9. 2017, 14:34:07
Trejpa:
Já z toho měl pocit, že se mu nejnovější zprávy objevují nahoře a dolů scrolluje když se chce podívat do historie. |
||
slon_cz Profil |
#5 · Zasláno: 30. 9. 2017, 15:46:49
Keeehi, děkuji za zprávu, kouknu na ten web socket, to bude asi nejlepší :)
btw, ano, nejnovější zpráva nahoře, nejstarší dole. |
||
Časová prodleva: 6 let
|
0