2012-08-30 15 views
6

Okno czatu na Facebooku pozostaje otwarte, niezmienione, aby odświeżyć stronę, lub nawet gdy zmienimy stronę. Jak odtworzyć coś podobnego? Próbowałem z zestawem ramek, ale nie działało.Okno podobne do facebookowego czatu

Jak zachować div otworzyć okno podobne do wewnętrznego, nawet po odświeżeniu strony lub clocar na link do strony internetowej?

+0

musisz utrzymywać stan okna na coś. albo plik cookie, sesja lub baza danych (lub dowolna liczba rzeczy). – Shmiddty

+0

Zrobiłbym to za AJAX –

+0

Jeśli ** załadujesz ** stronę przyciskiem przeglądarki, nie "pozostanie otwarta" - zostanie ponownie załadowana wraz ze wszystkim innym na stronie. Wszystko, co robisz przy użyciu interfejsu użytkownika, to po prostu ajax i nie ładuje ponownie strony z serwera, tylko aktualizują sekcje strony, nie dotykając sekcji czatu. –

Odpowiedz

1

Podobnie jak oni, można spróbować -

  1. Dane są dzielone pomiędzy stronami na Facebooku. Prawdopodobnie HTML5 localStorage? Ciasteczka? Nie jestem pewny.

  2. Jeśli zauważysz, nie "odświeżają" strony, one ajax-odświeżają zawartość na stronie dla kolejnych ładunków. (Chyba, że ​​ręcznie nawigować do tej samej strony, oczywiście.)

  3. Wreszcie wszystko jest CSS głównie niektóre z-index oddany do użytku.

Mam nadzieję, że te 3 wystarczy, aby zacząć.

0

Nie sądzę, że załadowana została cała strona Facebooka. Każdy link ma własny "cel". Większość z nich pobiera stronę (myślę, że po prostu AJAX), aby pokazać, inni po prostu zmienić niektóre części ekranu. Załóżmy, że masz dwa elementy div. Jeden div to chat-div. Pozycjonowanie stałe i wszystkie, z-index na 100, zawsze będzie na wierzchu. Reszta strony to druga strona div. W ramach tego elementu div można załadować określone strony przy użyciu technologii AJAX bez odświeżania całego ekranu.

Podobnie jak w przypadku ponownego ładowania ekranu: można łatwo zapisać (również w AJAX), czy użytkownik zamknął ekran czatu, czy też go otworzył. Po prostu utwórz tabelę w bazie danych o nazwie "czaty" lub coś w tym stylu, a kiedy otworzy się ekran czatu, umieść wpis w tej tabeli za pomocą "person_1", "person_2" "lastmessage" i "active". Po zamknięciu czatu możesz ustawić "aktywne" pole na fałszywe. Następnie, gdy ktoś ładuje całą witrynę, sprawdza czaty w tabeli w poszukiwaniu aktywnych czatów i pokazuje je, gdy są dostępne.

0

Chciałbym spojrzeć na qjuery-qjax: https://github.com/defunkt/jquery-pjax

ze swoich dokumentów:

roboty pjax chwytając html z serwera za pośrednictwem AJAX i zastąpienie zawartości pojemnika na swojej stronie z ajax "d html. Następnie aktualizuje bieżący adres URL przeglądarki za pomocą metody pushState bez ponownego ładowania układu strony lub zasobów (js, css), co daje wrażenie szybkiego, pełnego załadowania strony. Ale tak naprawdę to tylko ajax i pushState.