Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak zrobic postep wykonana skryptu?
raczkowski1
post 6.09.2007, 08:44:57
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.07.2007

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


Witam
Mam skrypt, który ładuje listę towarów z pliku, porównuje je z bazą i aktualizuje ceny, ale taki proces zajmuje trochę czasu.
Mam pytanie czy da rade zrobić jakiś pasek postępu na stroonie?? jeśli nie to w jakim języku lepiej to zrobić (c++ lub java)questionmark.gif

pozdrawiam


--------------------
Dariusz Raczkowski

www.atrium-pc.pl
www.e-pozyczka.one.pl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
zbig
post 6.09.2007, 09:25:01
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 30
Dołączył: 5.05.2007
Skąd: Mannheim

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


Pierwszy pomysl jaki przyszedl mi do glowy to dwa uruchamiane jednym kliknieciem Ajaxy.
Generujesz na stronie glownej unikalny id ktory bedzie potrzebny do jakiejs komunikacji miedzy dwoma procesami
Pierwszy proces uruchamia w tle ladowanie listy towarow ( zeby przegladarka miala jakis kontakt ze swiatem smile.gif )
-najpierw zczytujesz counter twojej listy towarow
-uruchmiasz mechanizm kontrolujacy postep ladowania listy (np. memcache) w ktorym zapamietujesz unikalny id i counter
-podczas ladowania listy po wykonaniu kazdej petli inkrementujesz swoja informacje o postepie

Drugi proces (a wlasciwie procesy) lacza sie z memcache odczytujac staly counter i aktualna informacje o postepie (no wlasnie wtedy moze przydac sie unikalny id do szukania interesujacej cie pary counter - postep)
Te procesy uruchamiasz jakims setInterval
Opakowujesz jakos request z serwera ( np w XML czy JSON ) i liczysz sobie proporcje
onSuccess laczysz ze skrypcikiem malujacym twoj progres

Pierwszy proces konczysz po zaladowaniu calej listy jakims response
Drugiego ajaxa konczysz jezeli stosunek countera i postepu = 1
Czyscisz memcache

Idziesz na piwo smile.gif


--------------------
Flash Flex PHP JAVA RED5 http://www.easyweb24.net
Go to the top of the page
+Quote Post
krowal
post 6.09.2007, 09:43:18
Post #3





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


Albo... robisz tak:
1. przetwarzasz sobie rekordy i np co piąty rekord (żeby nie obciążać zbytnio serwera) zapisujesz w jakimś miejscu, nazwijmy je TMP, może to być plik, lub baza danych, numer przerabianego rekordu a ostatni rekord oznaczasz w jakiś konkretny sposób żeby było wiadomo że już koniec. W tym samym czasie na stronie działa skrypt JS który za pomocą AJAX'a czyta Ci np co 1s. wartość TMP i wpisuje ją w element z odpowiednim id do póki nie przeczyta że to już koniec (dlatego musisz odpowiednio oznaczyć zakończenie) i...

Idziesz na piwo smile.gif


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
raczkowski1
post 7.09.2007, 16:46:42
Post #4





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.07.2007

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


wielkie dzięki, no to pora na naukę ajaxa smile.gif a wyniki z ajaxa ładuje w osobna ramkę czy jak? żeby mi w jednym miejscu na stronie wyświetlał info


--------------------
Dariusz Raczkowski

www.atrium-pc.pl
www.e-pozyczka.one.pl
Go to the top of the page
+Quote Post
Fixus
post 7.09.2007, 17:54:52
Post #5





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

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


nie nie...ty ustalasz gdzie się wyświetla
robisz na stronie
Kod
<div id='myDivElement' />

potem w kodzie pliku *.js odwołujesz się bezpośrednio do myDivElement...teraz nie mogę sobie przypomnieć jak. Ale jak zagłebisz się w AJAX`a to się tego nauczysz smile.gif
Go to the top of the page
+Quote Post
raczkowski1
post 17.09.2007, 10:46:22
Post #6





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.07.2007

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


wielkie dzieki za pomoc, teraz mam problem z ajaxiem ale to juz inny dzial;)

pozdrawiam


--------------------
Dariusz Raczkowski

www.atrium-pc.pl
www.e-pozyczka.one.pl
Go to the top of the page
+Quote Post
franki01
post 17.09.2007, 21:19:30
Post #7





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

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


Cytat(Fixus @ 7.09.2007, 18:54:52 ) *
nie nie...ty ustalasz gdzie się wyświetla
robisz na stronie
Kod
<div id='myDivElement' />

potem w kodzie pliku *.js odwołujesz się bezpośrednio do myDivElement...teraz nie mogę sobie przypomnieć jak. Ale jak zagłebisz się w AJAX`a to się tego nauczysz smile.gif



Kod
document.getElementById('myDivElement').innerHTML = text;


Takich rzeczy sie nie zapomina biggrin.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 09:50