Autor | Zpráva | ||
---|---|---|---|
Libor_u4 Profil * |
#1 · Zasláno: 9. 7. 2012, 10:25:30
Zdravím pánové a dámy, potřeboval bych poradit...
Mám funkci, která načte json přes ajax: function render_tab() { $.ajax({ url: 'urladresa', dataType:"json", success: function(json) { neco provedu }); } }) } A potřebuji, aby se po success defaultne volala každou vteřinu stále dokola (není to věc, která bude volná přes net, proto není třeba řešit zátěž apod.) Ovšem na stránce budou ještě dva buttony..."autorefresh on/off" a resfresh. Kdy první button zapíná/vypíná to automatické volání. A druhé tlačítko bude aktivní pouze když bude autorefresh off a zavolá funkci jen jednou. Poradí prosím někdo? Moc díky |
||
_es Profil |
#2 · Zasláno: 9. 7. 2012, 10:32:42
Libor_u4:
Nerozumiem celkom, na čo sa pýtaš, keď si si dal odpoveď už do nadpisu. Použi funkciu setInterval. Opakované spúšťanie funkcie zrušíš funkciou clearInterval. |
||
Libor_u4 Profil * |
#3 · Zasláno: 9. 7. 2012, 11:31:12
_es:
Udělal jsem tedy následující: function render_tab() { $.ajax({ url: 'urladresa', dataType:"json", success: function(json) { neco provedu timer(); }); } }) function timer() { var interval = setInterval(render_tab, 1000); } function stoptimer() { clearInterval(interval); } A zjišťuji, že se funkce volá rychleji, než jednou za 1s. A pomocí: <input onClick="stoptimer(this.form)" id="updating" type="button" value="auto refresh"/> se mi nedaří zastavit volaní uvedené funkce :-(( |
||
Chamurappi Profil |
#4 · Zasláno: 9. 7. 2012, 11:33:55
Reaguji na Libora_u4:
Každou sekundu nastavuješ, aby se jednou za sekundu nastavoval znovu interval (opakující se). „var interval“ To je lokální proměnná, která zanikne při skončení funkce timer .
|
||
Libor_u4 Profil * |
#5 · Zasláno: 9. 7. 2012, 11:39:45
Jasně už mi to došlo, takhle to je uplná blbost.. musel bych použít setTimeout, ale to zase nevím jak ten cyklus zastavit :-(
|
||
_es Profil |
#6 · Zasláno: 9. 7. 2012, 11:43:29
Libor_u4:
„musel bych použít setTimeout“ Nemusel, stačí pozorne čítať rady. |
||
Libor_u4 Profil * |
#7 · Zasláno: 9. 7. 2012, 11:49:34
Stale mi to nedochazi...
|
||
_es Profil |
#8 · Zasláno: 9. 7. 2012, 11:53:26
|
||
Libor_u4 Profil * |
#9 · Zasláno: 9. 7. 2012, 11:57:01
_es:
Tomu samozřejmě rozumím, ale nevím jak to udělat, abych mohl použít setInterval, zda vždy použít clearInterval, abych nejprve funkci zastavil a pak ji znovu po vteřině zavolal... |
||
_es Profil |
#10 · Zasláno: 9. 7. 2012, 12:08:02
Libor_u4:
„abych nejprve funkci zastavil a pak ji znovu po vteřině zavolal...“ Presne to ti zabezpečia funkcie setInterval a clearInterval . Aj keď nie je celkom jasné, čo má byť „zastavenie funkcie“, snáď zastavenie časovača, ktorý tú funkciu opakovane spúšťa - to spravíš funkciou clearInterval , samozrejme si musíš identifikátor časovača niekam uložiť, čo v [#3] nerobíš ([#4]).
|
||
Časová prodleva: 12 let
|
0