Autor Zpráva
analytik
Profil *
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
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 *
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
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
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
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.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0