Autor | Zpráva | ||
---|---|---|---|
Honza.P@ Profil |
#1 · Zasláno: 20. 2. 2012, 13:13:15
Poradil by mi někdo, jak udělat, aby se to měnilo každou vteřinu?
Z databáze se vytáhnu čas do kterého se má počítat a je ve formátu: 1329743796 // 14:16:36 Vypočitám si čas z db - aktuální čas a ten rozdíl pomocí .append() dám na nějaký div. Potřebuji, aby se to aktualizovalo každou vteřinu. Když se čas z db === aktuální čas, tak potřebuji, aby se provedl refresh. Odečtení už bych měl, ale stále nemohu přijít na tu část, která mi zajistí tu změnu každou vteřinu. Děkuji. |
||
Chamurappi Profil |
#2 · Zasláno: 20. 2. 2012, 13:17:23
Reaguji na Honza.P@:
Použij metodu setInterval .
|
||
Honza.P@ Profil |
Chamurappi:
Díky to je ono, ale asi to dělám nějak špatně, jelikož to sekne jak IE, tak FF $(function time(){ $("#countdown").empty(); $("#countdown").append((new Date()).getTime() -(-$("#countdown").attr("data-time"))); setInterval(time, 1000); }); |
||
_es Profil |
#4 · Zasláno: 20. 2. 2012, 14:07:18
Honza.P@:
Asi si si poriadne neprečítal, čo funkcia setInterval robí.
„Místo updatu se tam ten čas znovu připíše.“ Dokumentáciu jQuery nepoznáš? Nepotrebuješ jQuery, stačí innerHTML. |
||
Honza.P@ Profil |
#5 · Zasláno: 20. 2. 2012, 14:48:56
_es:
Samozřejmě, že znám. Dokonce jsem to vyřešil a editnul, ale to už si asi psal. Jenže se sekne prohlížeč. A ted jsem zjistil další problém. <?php time(); ?> !== <script>(new Date()).getTime()/1000</script> Takže to asi tahle vůbec nepůjde použít :/ |
||
_es Profil |
#6 · Zasláno: 20. 2. 2012, 15:03:17
Honza.P@:
„Dokonce jsem to vyřešil a editnul“ Prečo robiť niečo jednoducho, keď to ide zložito... „Jenže se sekne prohlížeč.“ Po určitom čase, že? Naozaj si si prečítal, čo funkcia setInterval robí a zamyslel sa, koľko krát ju voláš?
|
||
Honza.P@ Profil |
_es:
„Prečo robiť niečo jednoducho, keď to ide zložito...“ Proč někomu poradit, když nemusim. Jednodušší způsob mě nanapadl. Jinak pokud ti stále jde o jquery, tak to stejněk používám několikrát i jinde. „Po určitom čase, že? Naozaj si si prečítal, čo funkcia setInterval robí a zamyslel sa, koľko krát ju voláš?“ Vyřešeno. setInterval(function time(){ $("#countdown").empty(); $("#countdown").append((new Date()).getTime() -(-$("#countdown").attr("data-time"))); }, 1000); |
||
_es Profil |
#8 · Zasláno: 20. 2. 2012, 15:39:07
Honza.P@:
„Jinak pokud ti stále jde o jquery, tak to stejněk používám několikrát i jinde.“ JQuery má predsa aj iné metódy, aj keď na daný účel to jQuery nijako nezjednodušuje. |
||
Chamurappi Profil |
#9 · Zasláno: 20. 2. 2012, 16:07:42
Reaguji na Honzu.P@:
Proč bereš čas pokaždé z atributu? Co když mám v systému špatně nastavený čas? Rozcházení v řádu sekund je docela běžné… Když už používáš jQuery, proč empty a append , proč ne html ?
|
||
Honza.P@ Profil |
#10 · Zasláno: 20. 2. 2012, 16:31:26
Chamurappi:
V tom atributu je čas z db, u kterého bylo něco odečteno a jiné zas přičteno. Například se bude odpočítávat 5 minut, jinde zas 2 hodiny .... html() mě nenapadlo. Děkuji. |
||
Honza.P@ Profil |
Moc děkuji za pomoc, všem :)
|
||
Časová prodleva: 11 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0