Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Skrypt php i progress bar
Forum PHP.pl > Forum > Przedszkole
nieswiadomy :)
Witajcie drodzy użyszkodnicy smile.gif

Piszę pewien systemik webowy (php i inne mądre rozwiązania) do którego dopisałem możliwość wysyłania maili (phpmailer), jako że maile mają wysyłać się w pętli i ma ich być dość dużo zamierzam napisać jakiś progress bar.

Zastanawiałem się nad użyciem funkcji flush, ale to chyba mało eleganckie rozwiązanie. Myślałem też nad tym aby wyniki zapisywać do bazy z jakimś niedużym sleep'em, a skrypt progress bara czyli jakiś ajax i js lub jq miałby sobie te wyniki z bazy wypluwać na ekran w postaci ładnego paska. Po całej operacji wywoływany byłby truncate wyników w bazie.

Co wy na to? Jaki jest standard tworzenia takich progress barów?

Z góry dzięki za odp. pozdrawiam.
foqz
Chciałbym odświeżyć temacik.

Od kilku dni spędza mi sen z powiek zrobienie preloadera/paska postępu/lub innej informacji graficznej lub tekstowej dla użytkownika na czas wykonania całego skryptu php. Czas wykonania całego skryptu to około 5-8sek. Korzystam z phpmailera, który wysyła w tym skrypcie dwie różne wiadomości e-mail (niestety chwilę to trwa) a następnie wykonuje funkcje, które ładują frontend. Nie chciałbym, aby użytkownicy nieświadomie przerywali skrypt zamykając okno przeglądarki, lub klikając np. "Wyloguj".

Wypróbowałem kilka js preloader'ów, ale żaden nie przynosi porządanego efektu, czyli:
- po uruchomieniu skryptu pojawia się informacja graficzna/tekstowa/lub przyciemnienie strony
- po pełnym wykonaniu skryptu i załadowaniu strony informacja ta znika

Z góry dziękuję za wszelkie sugestie.
!*!
słowo klucz jquery. podczas wysyłania skryptu pokazujesz div (zakładam że wysyłasz form, ajaxem), gdy żądanie zostanie zakończone, chowasz div. W dokumentacji jquery, odnośnie ajax() masz opisane dokładnie czego użyć starcie i zakończeniu połaczenia.
foqz
Dziękuję za naprowadzenie smile.gif

Dla potomnych zacytuję kod testowy, w którym osiągnąłem upragniony efekt smile.gif

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <title>Test</title>
  4. <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
  5.  
  6. <script type="text/javascript">
  7. $.ajax({
  8. url: 'test.php'
  9. });
  10.  
  11. $(document).ready(function()
  12. {
  13.  
  14. $("#loader").bind("ajaxSend", function(){
  15. $(this).show();
  16. }).bind("ajaxComplete", function(){
  17. $(this).hide();
  18. });
  19.  
  20.  
  21. });
  22. </head>
  23. <div id="loader">Loading...</div>
  24. <div id="container">
  25. <img src="http://img1.oferia.pl/80aaa39cf3e6b7cc46474c7ad0855e90.png" />
  26. </div>
  27. </body>
  28. </html>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.