Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Pierwszy czas inny w setInterval
Mike122
post
Post #1





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

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


Napisałem następujący skrypt który podaję niżej działa prawie tak jak ma działać. Mam jeden problem chodzi o to że za 1 razem (1 raz po wczytaniu, odświeżeniu witryny) ma odliczyć czas 2000 ms (2 sekundy) a później już ma cały czas odliczać czas 5000 (5 sek.) a nie 2.
Proszę o pomoc.

  1. <script type="text/javascript">
  2. function numberFormat(nStr){
  3. nStr += '';
  4. x = nStr.split('.');
  5. x1 = x[0];
  6. x2 = x.length > 1 ? '.' + x[1] : '';
  7. var rgx = /(\d+)(\d{3})/;
  8. while (rgx.test(x1))
  9. x1 = x1.replace(rgx, '$1' + '.' + '$2');
  10. return x1 + x2;
  11. }
  12.  
  13. function getUp(a,b){
  14. a = document.getElementById(a);
  15. a.innerHTML = a.innerHTML;
  16. a.innerHTML = a.innerHTML.replace(new RegExp("[\.]+","g"),"");
  17. a.innerHTML = a.innerHTML.replace(new RegExp("[^\\d.]+","g"),"");
  18. a.innerHTML = a.innerHTML.replace(new RegExp(",","g"),".");
  19. a.innerHTML=+(a.innerHTML || 0)+b;
  20. a.innerHTML = numberFormat(a.innerHTML);
  21. }
  22. setInterval("getUp('test',1)", 2000);
  23. setInterval("getUp('test2',3)", 2000);
  24.  
  25. <span id="test">1.000</span>
  26. <span id="test2">3.000</span>
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


window.setTimeout() na 2 sekundy z wywołaniem tej funkcji + window.setInterval() na 5 sekund (w tym już tylko wywołanie funkcji)
Go to the top of the page
+Quote Post
Mike122
post
Post #3





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

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


Cytat(Crozin @ 12.08.2009, 17:11:18 ) *
window.setTimeout() na 2 sekundy z wywołaniem tej funkcji + window.setInterval() na 5 sekund (w tym już tylko wywołanie funkcji)


Mógł byś trochę jaśniej (IMG:style_emoticons/default/wstydnis.gif)
Przykład..

Ten post edytował Mike122 12.08.2009, 17:39:29
Go to the top of the page
+Quote Post
kamil4u
post
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Poczytaj o obu funkcjach podanych przez ~Crozin-a na MDC(taka strona). Następnie, najpierw wykonujesz:
Cytat
window.setTimeout() na 2 sekundy
, gdzie jako funkcję podajesz:
Cytat
wywołaniem tej funkcji + window.setInterval()
, a funkcję setInterval ustawiasz na:
Cytat
5 sekund
, a jako funkcję(w setInterval) podajesz:
Cytat
(w tym już tylko wywołanie funkcji)
Go to the top of the page
+Quote Post
Mike122
post
Post #5





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

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


  1. var time1 = "2000";
  2. var time2 = "5000";
  3. if(time1!=time2){
  4. window.setTimeout("getUp('test', 1)", time1);
  5. window.setInterval("getUp('test', 1)", time2);
  6. }else{
  7. window.setTimeout("getUp('test', time2);
  8. }


Jedak nie działa poprawnie...
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Nie do końca dobrze mnie zrozumiałeś... wywołanie setIntervala miało być wewnątrz setTimeouta:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4.  
  5. <title>Przykładowy dokument</title>
  6.  
  7. <style type="text/css"></style>
  8. <script type="text/javascript">
  9. function invokeMe(){
  10. document.getElementById("target").appendChild(document.createTextNode((new Date()) + "\n"));
  11. }
  12.  
  13. document.addEventListener("DOMContentLoaded", function(){
  14. window.setTimeout(function(){
  15. invokeMe();
  16. window.setInterval(invokeMe, 5000);
  17. }, 2000);
  18. }, false);
  19. </script>
  20. </head>
  21. <pre id="target"></pre>
  22. </body>
  23. </html>
Go to the top of the page
+Quote Post
Mike122
post
Post #7





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

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


By było super ale pod IE już nie działa (IMG:style_emoticons/default/worriedsmiley.gif)
Go to the top of the page
+Quote Post
Crozin
post
Post #8





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Pod IE nie działa jedynie ze względu na sposób w jaki podpiąłem zdarzenie DOMContentLoaded. Przeczytaj w googleu o: "Cross-browser DOM ready". Sam mechanizm będzie działał.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 14:30