![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 10.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Rozmawiałem ostatnio ze znajomym ,który chciał żebym mu coś tam zrobił, stronę w PHP itd, jako, że trochę się na tym znam to przeszliśmy do omawiania szczegółów i w pewnym momencie mówi mi, żeby chciał mieć coś takiego, żeby nawiązać stałe połączenie z serwerem i gdy coś się zmieni to ma to się pokazać na stronie - konkretnie chodziło o wykres.
Chodziło mu o takie coś - w momencie uruchomienia strony wysyłanie jest przez xmlHttpRequest żądanie, które trwa przez cały czas działania strony - cały czas są dosyłane wyniki i prezentowane na stronie w postaci wykresu - powiedział, że się z tym gdzieś na jakiejś stronie spotkał i że to było na 100% PHP + JS (ale niestety źródła, odnośnika nie znam) Ja trochę się na tym znam, ale specjalistą nie jestem, miałem do czynienia z AJAX-em, ale czegoś takiego nie spotkałem, na to co wiem i jak to rozumiem działanie ajaxa wydaje mi się to niemożliwe - ale może za mało wiem i niezbyt to wszystko rozumiem. Stąd moje pytanie - czy jest możliwe zrobienie czegoś takiego w AJAX-ie (a dokładniej za pomocą PHP i JS) , żeby dostawać wyniki z serwera bez czasowego odpytywania go (czyli bez funkcji która by się uruchamiała co ileś sekund) czyli na zasadzie, że jak się coś na serwerze zmieni to wysyłam do przeglądarki i to od razu widać |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 79 Pomógł: 12 Dołączył: 23.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Teoretycznie jest to możliwe(zestaw funkcji ob_*), ale sama przeglądarka będzie zrywać połączenie.
-------------------- ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 732 Pomógł: 80 Dołączył: 25.05.2005 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Z tego co się orientuje nie nawiążesz stałego połączenia, będziesz musiał co jakiś czas wywoływać funkcje.
-------------------- DevBlog - http://www.bartekrogus.pl
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Stąd moje pytanie - czy jest możliwe zrobienie czegoś takiego w AJAX-ie (a dokładniej za pomocą PHP i JS) , żeby dostawać wyniki z serwera bez czasowego odpytywania go (czyli bez funkcji która by się uruchamiała co ileś sekund) czyli na zasadzie, że jak się coś na serwerze zmieni to wysyłam do przeglądarki i to od razu widać aby uzyskać asynchronicznie wyniki z serwera trzeba go co jakiś czas odpytywać (Request) i odpowiednio obrabiać odpowiedź (Response). Za pomocą JS i PHP nic innego nie da się zrobić. A na pewno nie istnieje coś takiego jak "stałe" zestawienie połączenia między przeglądarką a serwerem. I oficjalnie odpowiedź brzmi: NIE ALE! Jest pewien myk o którym już trochę wspomniał MMPrime. Kiedyś miałem problem bo chciałem zrobić pasek postępu i potrzebne mi było "stałe zestawienie" zapytałem na tym forum czy jest coś takiego możliwe i dostałem odpowiedź, którą z powodzeniem wprowadziłem w życie. Przejrzyj ten wątek. Powinno Ci się sporo wyjaśnić i być może rozwiążesz swój problem Pozdrawiam Cezar708 Ten post edytował Cezar708 25.04.2008, 08:58:33 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 7 Dołączył: 4.05.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To co chcesz osiągnąć jest sprzeczne z podstawowymi założeniami HTTP, ale są sposoby, żeby to obejść - pogoogle'uj "comet web server" lub "reverse ajax", ew. zajrzyj do Wikipedii: http://en.wikipedia.org/wiki/Comet_%28programming%29
Na Sourceforge'u możesz znaleźć implementację w PHP: http://sourceforge.net/projects/comet/ JL |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 6.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
no wlasnie robie cos podobnego tylko mam maly problem z ... sesjami.
Trzymam sobie takie polacznie z serwerem i jest fajnie - dziala ale jak tylko puszcze kolejne żądanie do serwera to czeka az to pierwsze sie skonczy tj. nie dostaje odpowiedzi od serwera, na firebugu idealnie to widac. Ciekawi mnie to, ze ten efekt wystepuje tylko z sesjami ( standardowe session_start ) ma ktos pomysl ? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 20:20 |