Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sprawdzenie statusu połączenia/żądania
sic255
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.11.2008

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


Witam wszystkich!

Mam problem ponieważ chciałbym zrobić coś takiego jak np. na poczta.onet.pl, że w momencie, gdy wykonuje się skrypt lub jest wysyłane żądanie do przeglądarki i oczekiwanie na odpowiedź z serwera, pojawia się obrazek czy tekst "Trwa ładowanie...", a po załadowaniu strony pojawia się jej zawartość. Niestety szukałem już w wielu miejscach, zaczynając od manuala PHP, jednak jedyne co znalazłem to connection_status(), ale to jakoś nie rozwiązało mojego problemu, albo coś źle robiłem. Trzeba jakoś sprawdzić stan wysyłania/odbierania żądania z serwera, ale jak to nie wiem. Proszę o pomoc w tym, jak to zrobić.

Podsumowując: Strona się ładuje - wyświetla się tylko <div>Trwa ładowanie...</div>, a po załadowaniu strony cała zawartość. Chodzi o to, że czasem moje wyniki z MySQL są bardzo długie, a podczas ich "rysowania" za pomocą funkcji while wygląda to nieciekawie i chciałem na ten czas wyświetlić tą właśnie warstę, aby to ukryć.

Z góry dziękuje za wszelką pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Pozdrawiam

PS. Proszę admina/moda o przeniesienie tematu. Nie zauważyłem i wystawiłem w złym miejscu, za co przepraszam

Ten post edytował sic255 28.11.2008, 18:31:42
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Chodzi o to, że czasem moje wyniki z MySQL są bardzo długie, a podczas ich "rysowania" za pomocą funkcji while wygląda to nieciekawie i chciałem na ten czas wyświetlić tą właśnie warstę, aby to ukryć.

W wielu skryptach jest to rozwiązane w taki sposób. Przed tabelką wstawiasz warstwę z listą ładowania. Zaraz po pętli np. kod w JS, który ukrywa warstwę.

Możesz jeszcze co każdy krok pętli walnąć flush" title="Zobacz w manualu PHP" target="_manual i coś w stylu paska postępu. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ściągnij sobie net2ftp; tam jest takie rozwiązanie. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

PS. Nie myl tego z pocztą onetu, bo tam prawdopodobnie aplikacja jest oparta na ajaksie.
Go to the top of the page
+Quote Post
sic255
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.11.2008

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


Hmm zobacze, ale to nie tylko się miałoby tyczyć mysql'a, ale także wszystkich podstron
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Możesz robić w ten sam sposób na wszystkich; na początku warstwa, na końcu kodu jej ukrycie.

Tylko czasem bywa tak, że serwer wysyła dane większymi paczkami, dlatego co jakiś czas trzeba użyć właśnie flush" title="Zobacz w manualu PHP" target="_manual. Jeśli nie masz żadnej czasochłonnej pętli, to skorzystaj z np. register_tick_function" title="Zobacz w manualu PHP" target="_manual i np. 1/1000 wywołuj flush" title="Zobacz w manualu PHP" target="_manual. Choć rozsądniejszym rozwiązaniem byłoby przejrzenie konfiguracji serwera, ale wątpię, żebyś miał taką możliwość. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
sic255
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.11.2008

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


Słabe to rozwiązanie. Na serio nie można w jakiś sposób sprawdzić kiedy: "wysyłanie żądania", "oczekiwanie na", "zakończono" (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No cóż... Pozostaje Ci tylko AJAX, jeśli chcesz zrobić coś takiego...
Go to the top of the page
+Quote Post
sic255
post
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.11.2008

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


Hmm wiem też, że na gmailu jest coś takiego. Tam jest div... A wiesz może i czy byłbyś tak dobry i powiedziałbyś jak to rozwiązać na AJAXie (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No wczytujesz najpierw szkielet strony (czyli szablon + tabelka bez danych). Potem wczytujesz do niej dane via AJAX (np. JSON/XML, ostatecznie gotowy kod). Przed wysłaniem żądania wypuszczasz komunikat idź na kawę, wysyłasz żądanie do skryptu, aby wypluł potrzebne Ci dane, wstawiasz do tabelki, potem chowasz komunikat.
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: 22.08.2025 - 17:23