Autor | Zpráva | ||
---|---|---|---|
analytik Profil * |
#1 · Zasláno: 8. 6. 2015, 14:04:20
Zdravím,
nevíte někdo, zda-li existuje v Javascriptu něco jako Application.ProcessMessages /používá DELPHI. Jedná se o to, že v cyklu budu čekat, až ´globální proměnná bude mít určitou hodnotu kterou zpracovává jiná funkce. bez použití něčeho jako Application.ProcessMessages while zatuhne a je to v čudu. Dík moc, kdo by jste věděl. |
||
Joker Profil |
#2 · Zasláno: 8. 6. 2015, 14:11:56
analytik:
Nevím, co ta věc v Delphi dělá, ale JS funguje jiným způsobem a obvykle není důvod v něm dělat cyklus, který na něco čeká. To se v JS typicky dělá tak, že se v příslušnou chvíli vyvolá a zpracuje nějaká událost. |
||
analytik Profil * |
#3 · Zasláno: 8. 6. 2015, 14:49:02
Tak že v JS nejde udělat třeba cykl for od jedné do desíti a v tom cyklu mít while který bude čekat dokavaď ˇglobální proměnná nebude mít nějakou hodnotu a po té bude cykl pokračovat ?
|
||
juriad Profil |
#4 · Zasláno: 8. 6. 2015, 15:31:52
analytik:
V JS to není možné, protože se vše vykonává v jednom vlákně a během vykonávání JS se zablokuje interakce uživatele se stránkou. Chceš-li čekat na nějakou změnu, musíš použít nějaký callback (funkci, kterou předáš/zaregistruješ a která se zavolá až změna nastane). |
||
_es Profil |
#5 · Zasláno: 8. 6. 2015, 16:04:16
analytik:
Tá globálna premenná sa predsa nezmení len tak sama od seba, ale z nejakej príčiny. Takže ti nič nebráni naviazať na tú príčinu, aby sa vtedy spravilo to, čo chceš. |
||
Joker Profil |
#6 · Zasláno: 8. 6. 2015, 19:25:10
analytik [#3]:
Udělat to samozřejmě jde, ale je jen málo situací, ve kterých by se to dělat mělo. Obvykle není důvod něco takového dělat. Přečetl jsem si, co v Delphi dělá Application.ProcessMessages . Jestli to správně chápu, Delphi řadí systémové události v aplikaci, požadavky na překreslení okna, atd. do fronty, jejíž zpracování je během vykonávání procedury pozastavené. A Application.ProcessMessages si vynutí zpracování té fronty, aby při dlouhotrvající proceduře aplikace nepřestala úplně reagovat.
V tom případě v JS žádný ekvivalent toho není, protože pokud skript změní obsah stránky, promítne se to okamžitě (a ne až na konci funkce), takže nic takového není potřeba. |
||
Časová prodleva: 10 let
|
0