![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.09.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam..
Z góry przepraszam za być może trywialne pytanie ![]() Temat wydaje sie prosty i być może taki jest ![]() Często zachodzą przypadki, że skrypt przykładowo długo przeszukuje bazę i wtedy na ekranie, po wybraniu jakiejś opcji, nic się nie pojawia przez dłuższy czas. Chciałbym mieć możliwość wyświetlenia w tym czasie jakiegoś ekranu w stylu: "Proszę czekać". Kłopot w tym, że przeglądarka wyświetli taką stronę dopiero po zakończeniu całego skryptu (po zakończeniu szukania). Drugi, podobny przypadek, to wyświetlanie na bieżąco kolejnych informacji o postępie w działaniu skryptu, np: "Etap1, Etap2..". Normalnie, takie komunikaty wysyłane przez echo, będą wyświetlone dopiero po zakończeniu skryptu. Co zrobić, żeby były wyświetlane na bieżąco? Z góry dziękuję za porady ![]() pozdrowienia, Tomek |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 155 Pomógł: 0 Dołączył: 15.07.2004 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
co do wyświetlania "proszę czekać" to używa się do tego java scriptu a nie php.
2 pytanie: myśle że wystarczy flush:
-------------------- notDevBlog - devblog.luinnar.com
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.09.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za podpowiedź ale niestety flush() nie działa
![]() -------------------- pozdrowienia, Tomek
------------------------- Ci, którzy umieją - robią, ci którzy nie umieją - uczą. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
To jest sprawa zalezna czesciowo od przegladarki. Np. taki IE sobie buforuje sam i dopoki nie dostanie pewne ilosci znakow to nie wyswietli niczego, nie wyswietli tez niedokonczonej tabelki (chyba, ze dzialanie skryptu zostanie przerwane i nic juz wiecej nie dostanie). Pod FF o ile pamietam nie ma domyslnie buforowania, wiec mozna sobie wyswietlac php'owy pasek postepu (bo zapewne o cos takiego Ci chodzi) bez problemu. Nie wiem jak z Opera. Co do wielkosci bufora w IE to musisz sobie sam do tego dojsc, ja juz nie pamietam tej wartosci, ale z tego co kojarze moglo to byc 256 albo 512. Wiec na poczatku skryptu musisz wyslac do przegladarki jakies nieznaczace znaki (np. spacje) w tej ilosci, a dopiero potem zawartosc wlasciwa, ktora ma byc wyswietlana stopniowo. Dodatkowo po kazdym kroku w php, ktory powoduje jakies wyswietlenie danych powinienes wywolac funkcje flush" title="Zobacz w manualu php" target="_manual (w komentarzach do tej funkcji tez ma co nieco opisane, poczytasz i bedziesz wszystko wiedzial).
A swoja droga to, ze nikt nie odpowiedzial na Twoj temat nie oznacza jeszcze, ze mozesz sobie zakladac drugi traktujacy o tym samym. Radze dokladniej przestudiowac regulamin, na ktory sie zgodziles ![]() -------------------- Brak czasu :/
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.09.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź ale to wszystko co piszesz już sprawdziłem i IE nie reaguje wyrzuceniem bufora na wysłanie nawet ponad 1024 spacji
![]() A co do upomnienia... 1. Nie napisalem drugiego posta tak sobie bo mi się nie chcialo czekać (kilka dni bez efektu minęło) 2. Gdyby forum dopuszczało dodanie kolejnej odpowiedzi po mojej ostatniej to bym to zrobił bo tak zacząłem... niestety ta możliwość (dwa posty pod rząd) jest zablokowana ![]() 3. W związku z powyższym nie miałem innego wyjścia chcąc uzyskać możliwość zadania jakiegokolwiek kolejnego pytania (może sie mylę to mnie popraw) 4. Coś za szybko ci idzie z tymi upomnieniami... a jak dostanę drugą żółtą kartkę to mnie wywalisz czy pójdę na ławkę rezerwowych ![]() -------------------- pozdrowienia, Tomek
------------------------- Ci, którzy umieją - robią, ci którzy nie umieją - uczą. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Cytat Dzięki za odpowiedź ale to wszystko co piszesz już sprawdziłem i IE nie reaguje wyrzuceniem bufora na wysłanie nawet ponad 1024 spacji ![]() Sprobuj 4096 i poczytaj komentarze do funkcji flush na php.net. Wynika z nich, ze potrzeba wlasnie 4096 znakow. Jest tam zaprezentowanych tez kilka sposobow na zrobienie tego co chcesz. Cytat 1. Nie napisalem drugiego posta tak sobie bo mi się nie chcialo czekać (kilka dni bez efektu minęło) 2. Gdyby forum dopuszczało dodanie kolejnej odpowiedzi po mojej ostatniej to bym to zrobił bo tak zacząłem... niestety ta możliwość (dwa posty pod rząd) jest zablokowana ![]() 3. W związku z powyższym nie miałem innego wyjścia chcąc uzyskać możliwość zadania jakiegokolwiek kolejnego pytania (może sie mylę to mnie popraw) http://forum.php.pl/index.php?act=Regulamin#IV.2 ![]() Fakt, postow pod soba pisac nie mozna, ale mozna zastosowac trik.. jesli Twoj post jest ostatni to mozna go usunac i wtedy odpowiedziec (wklejajac ewentualnie zawartosc tego usuwanego posta na poczatku) Cytat 4. Coś za szybko ci idzie z tymi upomnieniami... a jak dostanę drugą żółtą kartkę to mnie wywalisz czy pójdę na ławkę rezerwowych ![]() Za szybko? przeciez dopiero pierwsze. Jestes nowy, wiec masz taryfe ulgowa i narazie ostrzezenie bylo "slowne", nie wpisalem Ci go na liste. A to kiedy idziesz na "lawke rezerwowych" to juz kwestia indywidualna.. zalezy od ciezkosci przewinien, mozesz sobie to zalatwic jednym wybrykiem albo pracowac na to kilkoma mniejszymi ![]() -------------------- Brak czasu :/
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
w takiej sytuacji nie można oprzeć się tylko na php.
Potrzeba pomocy ... JS. A jak to zrobić? Na początek pracy skryptu wyświetlić np. wartstwę z odpowiednim napisem. A na końcu strony, już po wszystkich operacjach bazodanowych, uruchomić jakąś funkcję, która tą warstę ukryje. Zresztą - wystarczy dodać wywołanie takowej w <body onload="" Przy pomocy js można zrobić jeszcze inny ciekawy efekt - preloader, pokazujący postęp prac. A by działał - wystarczy tylko co jakiś czas (co ileś pętli w skrypcie, co któreś zapyanie..) wyświetlić odpowiedni kod javascriptowy. Zresztą - w PEAR jest świetna biblioteka służąca do tego. -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 09:12 |