Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Stoper., Nie chodzi równo z zegarkiem.
fish2000
post 27.12.2009, 21:00:48
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 26.07.2008

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


Witam, mam problem ze stoperem, ponieważ nie chodzi "jak w zegarku", różnica między nim a zegarkiem wynosi około 9s na 1 minutę. JS nie ogarniam, dopiero się uczę, i nie wiem czy są jakieś efektywniejsze metody, a może tylko ja coś schrzaniłem i nie działa.

  1. <script type="text/javascript">
  2. var min=0;
  3. var sek=0;
  4. var ms=0;
  5. var ms2=0;
  6.  
  7. function stoper() {
  8. ms2++;
  9. if(ms2>=10){
  10. ms2=0;
  11. ms++;
  12. if(ms>=10){
  13. ms=0;
  14. sek++;
  15. if(sek>=60){
  16. sek=0;
  17. min++;
  18. }
  19. }
  20. }
  21. document.form.pole.value=min+":"+sek+"."+ms+ms2;
  22. }
  23. setInterval(stoper,10);
  24. <form name="form">
  25. <input type="text" name="pole" size="10">
  26. </form>
  27.  


W każdym razie potrzebna mi jest dokładność do 0.01s.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
erix
post 28.12.2009, 12:02:50
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
różnica między nim a zegarkiem wynosi około 9s na 1 minutę

Którym zegarkiem? Systemowym?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
fish2000
post 28.12.2009, 13:50:08
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 26.07.2008

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


Cytat(erix @ 28.12.2009, 12:02:50 ) *
Którym zegarkiem? Systemowym?

Sprawdzałem w zegarku na stoperze. Nie wiem, może skrypt traci prędkość na instrukcjach warunkowych czy coś, dziwna sprawa ;/
Go to the top of the page
+Quote Post
erix
post 28.12.2009, 17:55:16
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Na jakiej przeglądarce sprawdzasz?

Spróbuj najpierw na innej, potem ew. bez wyświetlania zawartości kroku.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
fish2000
post 28.12.2009, 18:46:22
Post #5





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 26.07.2008

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


Cytat(erix @ 28.12.2009, 17:55:16 ) *
Na jakiej przeglądarce sprawdzasz?

Spróbuj najpierw na innej, potem ew. bez wyświetlania zawartości kroku.

Na każdej przeglądarce inna wartość, na operze ok 9s na chrome 5s na ff 20s.

Ale już sobie jako tako poradziłem, podzieliłem skrypt na 2 funkcję, jedna liczy ms a druga s i m, teraz na 2 minutach mam różnicę około 1s, więc da się przeżyć tongue.gif

Go to the top of the page
+Quote Post
erix
post 28.12.2009, 18:51:11
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Bo wartość zależy od silnika przeglądarki.

Podejrzewam, że gdybyś nie wyświetlał wyniku odliczania na bieżąco, byłoby wtedy w miarę dokładnie.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
zegarek84
post 28.12.2009, 19:37:13
Post #7





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


Cytat(fish2000 @ 28.12.2009, 18:46:22 ) *
Na każdej przeglądarce inna wartość, na operze ok 9s na chrome 5s na ff 20s.

Ale już sobie jako tako poradziłem, podzieliłem skrypt na 2 funkcję, jedna liczy ms a druga s i m, teraz na 2 minutach mam różnicę około 1s, więc da się przeżyć tongue.gif

tak jak wspomniał Erix - lecz to wartość opóźnień związanych z szybkością liczenia, dlatego za każdym razem odwołuj się do uniwersalnego wzorca jakim jest zegarek systemowy winksmiley.jpg - tu masz rozwiązanie:


  1. </HEAD>
  2. <form name="form">
  3. <input type="text" name="pole" size="10">
  4. </form>
  5. var $timerID = null , $start = null, $pole=null;
  6. function wyswietlCzas()
  7. {
  8. var $czas = new Date((new Date()).getTime() - $start),
  9. $godziny = $czas.getUTCHours(),
  10. $minuty = $czas.getUTCMinutes(),
  11. $sekundy = $czas.getUTCSeconds(),
  12. $milisekundy = $czas.getUTCMilliseconds(),
  13. $czas = [$godziny, ':', ($minuty<10)?'0'.concat($minuty):$minuty, ':', ($sekundy<10)?'0'.concat($sekundy):$sekundy, '.',($milisekundy<100)?'0'.concat(($milisekundy<10)?'0'.concat($milisekundy):$milisekundy):$milisekundy].join('');
  14. $pole.value = $czas;
  15. $timerID = setTimeout(wyswietlCzas,10);
  16. }
  17. function(){
  18. $pole=document.form.pole;
  19. $start=(new Date()).getTime();
  20. wyswietlCzas();
  21. }()
  22. </BODY>
  23. </HTML>



a oprócz tego jeszcze link do podobnego tematu winksmiley.jpg - może Ci się przyda kiedyś też:

[Java][PHP]Zegarek

Ten post edytował zegarek84 29.12.2009, 00:04:52


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
kefirek
post 28.12.2009, 19:40:10
Post #8





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


[JAVASCRIPT] pobierz, plaintext
  1. <html>
  2. <head>
  3. <script src="http://code.jquery.com/jquery-latest.js"></script>
  4. <script type="text/javascript">
  5.  
  6. var start = 0;
  7.  
  8. $(document).ready(function(){
  9. stoper();
  10. setInterval(stoper,1000);
  11. });
  12.  
  13. function stoper()
  14. {
  15. godzin = Math.floor(start/3600);
  16. minut = Math.floor(start/60)%60;
  17. sekund = start%60;
  18. $('#stoper').html('Godzin ' + godzin + ' Minut ' + minut + ' Sekund ' + sekund);
  19. start++;
  20. }
  21.  
  22.  
  23.  
  24. </script>
  25. </head>
  26. <body>
  27. <div id="stoper">
  28.  
  29. </div>
  30.  
  31. </body>
  32. </html>
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post
erix
post 28.12.2009, 20:24:24
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




~kefirek, czy Ty idąc do WC zamawiasz całą partię z fabryki papieru, czy idziesz tylko z rolką? Po kiego grzyba tu jQuery?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
fish2000
post 28.12.2009, 20:47:31
Post #10





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 26.07.2008

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


zegarek84 dzięki za skrypt, działa idealnie smile.gif

kefirek tam nie ma ms.




Dziękuję wszystkim za pomoc, można zamknąć.

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: 14.08.2025 - 03:50