![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
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. |
|
|
![]()
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
|
|
|
![]()
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) |
|
|
![]()
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)
|
|
|
![]()
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...
|
|
|
![]()
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)
|
|
|
![]()
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.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 17:23 |