![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 2 Dołączył: 1.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Od pewnego czasu zastanawia mnie pewne zagadnienie. Mianowicie jak realizowane jest automatyczne odświeżanie np. tablicy na Facebooku. Jeżeli ktoś doda wiadomość, niemal natychmiast pokazuje się ona u nas. Jedyne rozwiązanie jakie mi przychodzi do głowy to skrypt JS, który sprawdza czy są nowe wiadomości i ew. je pobiera. Z teoretycznego punktu widzenia, problem rozwiązany, lecz co z wydajnością? Co sekundę odpytywać bazę byłoby zabójcze, więc zapewne trzeba operować cachem. Może ktoś tworzył coś podobnego i podzieli się informacjami? Pozdrawiam Jawor |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 006 Pomógł: 111 Dołączył: 23.07.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Na pewno działa tutaj AJAX, aby pobierać / wysyłać dane asynchronicznie. Cache na pewno przyda się jako dodatek. A reszta to porządne maszyny i łącza
![]() Zobacz, ile osób na tym siedzi. Każda zmiana podstrony na FB to kolejne żądania => nowe dane pobrane / wysłane, więc na pewno zapytania muszą mieć zoptymalizowane i jak napisałem wcześniej - sprzęt i łącza. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Z teoretycznego punktu widzenia, problem rozwiązany, lecz co z wydajnością? Co sekundę odpytywać bazę byłoby zabójcze, więc zapewne trzeba operować cachem. Może ktoś tworzył coś podobnego i podzieli się informacjami? Nie grzebałem nigdy w źródłach FB, ale było coś takiego, jak COMET. Ale prawie nigdzie to nie działa, więc zostaje częste odpytywanie serwera. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie co sekundę nie brzmi jeszcze tak strasznie.
Ważne aby to było optymalne zapytanie np. pobierające wyłącznie ostatnie ID wiadomości i tu dopiero następuje porównanie ID aktualnego z "nowym" i pobranie większej porcji danych (tekst, autor, data itp). Oczywiście jeśli przewidujemy dosyć częste aktualizacje to można pobierać od razu cały wiersz (zastąpić 2 zapytania jednym). -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o node.js
![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Może to też być jedno zapytanie, dla wielu elementów, nie jednego konkretnego, bo wtedy powstałoby wiele równoległych zapytań dla każdego elementu z osobna, a tak powstaje powiedzmy co sekundę jedno zapytanie które zwraca elementy nadpisane, a skrypt aktualizuje tylko te elementy które zostały zaktualizowane. Niech istnieje przykładowo jedna tabelka dla danego usera który jest online w której będą trzymane informacje, które się zmieniły w trakcie jego pobytu na stronie, do tego odpowiednie triggery które aktualizują tą tabelkę jeżeli zostanie inna zaktualizowana i można dość wiele rzeczy w ten sposób zrobić. Przynajmniej ja tak to widzę, nie wiem jak to jest na fb rozwiązane dokładnie.
Dokładnie tak jak wyżej koledzy piszą, konkretne maszyny, zwykły serwer współdzielony wymiękłby przy kilkunastu użytkownikach online. Dlatego takie możliwości nie są dla wszystkich. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Chyba nie doceniasz PHP
![]() ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 31 Pomógł: 7 Dołączył: 14.06.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
I tak zwykle serwisy wykładają się na problemach z wydajnascią bazy danych a nie na języku który je obsługuje. No chyba, że ktoś coś potwornie zepsuł
![]() -------------------- zagr.am - najlepsze flash do zagrania. Codziennie.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.06.2025 - 09:22 |