![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 30.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam taki oto problem. Mam skrypt w którym w pętli for przetwarzane są dane. Jednakże ilość iteracji jest zmienna, czasem jet to kilkanaście, czasem kilka tysięcy wywołań pętli. W związku z tym chciałbym wiedzieć na jakim etapie jestem. W najprostszym rozwiązaniu wymyśliłem sobie div'a, gdzie będę wyświetlał wartość iteracji za pomocą innerHTML. No i na tym padam:( Potrafię zmienić tego div'a, ale po jakimś zdarzeniu (onchange, onkeyup), ale nie mam pojęcią jak takie zdarzenie wymusić w pętli. Narazie mam informację o wykonaniu dopiero jak się całość przetworzy, a co za tym idzie strona załaduje, tylko, że czasem to zwicha, i chciałbym wiedzieć w którym momencie. Upraszczając, jestem na takim etapie (chodz nie wiem czy to nie kozi róg;) )
Jako, że to dopiero moje początki, prosiłbym o wyrozumiałość ![]() Pozdrawiam Ketiv |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 2 Dołączył: 3.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
wewnątrz for musisz wywolac funkcje javascript aby to zrobic co wywolanie musialbys wyswietlac
<script> addText('ilosc rekordow za nami'); </script> powinienes tez zmodyfikowac funkcje addText lub dodac nowa ktora bedzie zamiast dodawac tekst podmieniac tekst zeby za kazdym razem wyswietlac aktualny stan petli np. 10 ze 100 20 ze 100 40 ze 100 Jendak takie wyswietlanie jest dosc niekonwencjonalne. Przy 10000 rekordów plik html urosnie do kosmicznych rozmiarów. PHP nie nadaje się do takich zadań. Ten post edytował vsemak 6.03.2009, 14:16:38 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 30.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, właśnie o czymś taki myślę, ale właśnie z tym wyświetlaniem mam problem.
ten fragment generuje niestety błąd ![]()
jak dodałem coś takiego, to już błędu nie mam, ale też nic do przeglądarki nie jest wysyłane:(
Ten post edytował ketiv 6.03.2009, 15:11:03 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 4 Dołączył: 3.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Robiłem jakiś czas temu podobną rzecz - ale zamiast wypluwania skryptu js, który zacznie działać dopiero po wczytaniu strony / serwer zbuforuje dane żeby je wysłać dopiero po chwili, etc. użyłem zapisywania do mysql, aktualnego cyklu i potem z drugiego skryptu z użyciem ajaxa pobierałem.
Nie wiem czy wysyłać te skrypty czy będziesz je pisał samodzielnie - napisz jeśli potrzebujesz. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
jak dodałem coś takiego, to już błędu nie mam, ale też nic do przeglądarki nie jest wysyłane:( flush" title="Zobacz w manualu PHP" target="_manual |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 30.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
@Istalacar
Dzięki, badzo chętnie skorzystam z pomocy. Tak na prawdę to nie wiem co gorsze/lepsze. Wykorzystanie w tym celu MySQL'a spowoduje, że pojawi się masa dodatkowych odwołań do bazy (zapisujących stan, i później odczytujących). Nad takim rozwiązaniem już też myślałem, tym bardziej, że w moim przypadku ilość iteracji jest właśnie zależna od ilości rekordów w tabeli MySQL. Co za tym idzie, mogę dorobić dodatkową kolumnę ze statusem przetworzenia rekordu. Do tej pory wszystko co pisałem wykorzystywało tylko HTML, PHP i MySQL - JS i Ajax mocno sporadycznie, i to najczęściej jakieś przerbiane gotowce. Jeśli już cos takiego ćwiczyłeś, i wyszło, że MySQL jest lepszym rozwiązaniem niż JS, to chętnie skorzystam z doświadczenia. Pozdrawiam Ketiv |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 4 Dołączył: 3.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
To nie był projekt - po prostu znalazłem funkcję set_time_limit i chciałem sprawdzić jak ona działa, tak więc było tu uruchomione wyłącznie przezemnie do testów, nie optymalizowane w żaden sposób etc.
Tutaj możesz ściągnąć te 2 pliki: http://istalacar.com/download/test.rar |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:04 |