Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> AJAX - pobieranie danych ze strumienia
Seth
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Mam pewien problem, a raczej koncepcja na rozwiazanie jednej rzeczy.
Chodzi o pasek postepu i jego stala aktualziacje na podstawie danych wyslanych przez PHP a pobieranych AJAXem.

Do serwera wysylam rzadanie AJAXem. Gdy skrypt skonczy dzialanie, AJAX pobiera dane wynikowe, ktore przekazal skrypt.
Ciekaw jestem czy jest jakas mozliwosc pobierania na biezaco danych, ktore przesyla skrypt jako odpowiedz AJAXowa.

Nieco bardziej to zobrazuje.

Wysylam rzadanie do serwera za pomoca AJAXa. Serwer przetwarza to rzadanie i co kazdy przetworzony element przygotwuje odpowiedz powiedzmy w formie cyfry (0-100) oddzielonej nowa linia.
Jako, ze po przetworzeniu jednego elementu, skrypt nie konczy dzialania, a caly czas je przetwarza, po kazdym przetworzonym elemencie wysyla (a raczej dopisuje do odpowiedzi) cyfre + nowa linie.
Czyli np tak:
Kod
1
2
3
4
5
6
... itd.


Oczywiscie miedzy tymi "cyframi" sa dluzsze lub krotsze przerwy w wypisywaniu kolejnej pozycji.

Dzialanie np jquery jest takie, ze oczekuje on na zakonczenie calej operacji - czyli kiedy skrypt zakonczy calkowicie dzialanie, i dopiero wtedy przekazuje cala odpowiedz.
Mnie natomiast chodzi o to, aby po kazdej nowej linii otrzymac ta odpowiedz, moc wykonac jakas operacje (w tym przypadku zwiekszyc graficzny pasek postepu) i oczekiwac na kolejna linie.
Tak samo jakbym nasluchiwal socketami na okreslonym porcie.

Czy jest to wykonalne za pomoca AJAXa w takiej formie jak opisuje?


Innym rozwiazaniem tego bylo by po prostu wyslanie rzadania do serwera. Ten zakonczy polaczenie z przegladarka ale nadal bedzie sie wykonywal i po kazdym przetworzonym elemencie dopisywal by je do jakiegos pliku logow albo do bazy.
Nastepnie co 1s. odpalal bym innego AJAXa z rzadniem o pobranie aktualnego statusu przetwarzanego rzadania.
Co sadze tez jest dobrym rozwiazaniem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Seth 4.10.2007, 00:42:51
Go to the top of the page
+Quote Post
tomeksobczak
post
Post #2





Grupa: Zarejestrowani
Postów: 139
Pomógł: 10
Dołączył: 6.07.2007
Skąd: opole

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


niby jest taki event onInteractive ale z tego co wiem to nie jest w pelni kompatybilny pomiedzy przegladarkami
Go to the top of the page
+Quote Post
php programmer
post
Post #3





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


Wydaje mi się, że rozwiązanie jest całkiem proste,

Wywołujesz Ajax'em skrypt php, który coś tam robi w tle,
ten skrypt zapisuje jednocześnie postęp (w procenach) w ciastku,

Natomiast w skrypcie głównym, wywołujesz w JavaScript poprzez funkcję setInterval
co jedną sekundę swoją funkcję JS, która sprawdza to ciastko,
i pokazuje/odswieża procent postępu,
bo JS ma bezpośrednią możliwość czytania ciastek,
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 12:25