Autor Zpráva
Darker
Profil
Potřeboval bych zastavit program, např funkci po dobu platnosti podmínky, tedy najít funkci, která program nepustí po nějakou dobu dál.
Konkrétně by se mi například hodilo, abych mohl funkci alert nahradit méně otravným DHTML oknem (v některých případech) a zatistit aby funkce stála dokud se okno nezavře.
Zkoušel jsem prázdný while(okno existuje) {}; ale výsledek si asi představíte.
Asi ne náhodou řeším teď obdobný problém v C++ :
Mám program jehož konstrukce je asi takováhle:
main(){
while(!nacteno){
&bnsp;zde uživatel zadá skript na načtení
}
while(true){
if(zmackl f5){
while(!konec skriptu){provadeni skriptu}
}}
}
Je to zkrácené i co se týče principu, ale o tomi nejde. Problém je v tom, že nevím jak zajistit, aby program začal něco dělat až po stisku klávesy...
Do té doby zanedbatelně, ale přesto žere procesor.
Omlouvám se, že sem cpu C++ ale nevím o žádném seriózním českém CPP fórku.
Joker
Profil
darker:
Ta koncepce je v JS nesmyslná jako celek.

DOM a Javascript takhle nefunguje, je řízený událostmi.
Čili například když se má skript spustit po stisku klávesy, nebude v nekonečné smyčce čekat na stisk klávesy, ale pověsí se na událost stisknutí klávesy.

Mimochodem jsem zvědav, jak chcete v Javascriptu detekovat stisk klávesy jinak než pověšením se na odpovídající událost.

V C++ to samozřejmě funguje jinak, C++ a Javascript jsou postavené úplně jinak.
Darker
Profil
Přečetl jste to přesně opačně, než jsem to napsal. V c++ chci detekovat stisk klávesy, nejsem v JS takový amatér, abych neznal JS event onclick.
Zde zmíněná koncepce je c++, (proč je tam asi main() , že) a pauza programu mi chybí v obou jazycích. V C++ je sice funkce Sleep(int) ale já bych potřeboval, nerad se opakuji, pauzu závislou na podmínce.
Dík že teď už chápete, co jsem měl na mysli.
_es
Profil
darker:
já bych potřeboval, nerad se opakuji, pauzu závislou na podmínce.

Pauzu, závislú na podmienke, môžeš simulovať metódou setTimeout:
nejaký kód
if(podmienka) setTimeout(f, ČasVmiliSekundách);
else f();
function f(){nejaký ďalší kód}
Joker
Profil
darker:
nejsem v JS takový amatér, abych neznal JS event onclick.
Ten na stisknutí klávesy moc nepomůže.

Zde zmíněná koncepce je c++, (proč je tam asi main() , že) a pauza programu mi chybí v obou jazycích.
Na jaký jazyk to je vlastně dotaz?
C++: Když tam je sleep(int), tak pauza závislá na podmínce je if(podmínka) sleep(int); nebo while(podmínka) sleep(int);

Dotaz je ale v sekci Javascript, takže jsem psal odpověď pro Javascript, resp. že v JS něco takového prakticky není potřeba, už vzhledem k jeho koncepci.
V JS se asynchronní operace obvykle neřeší pozastavením skriptu a čekáním na splnění podmínky, ale přes události.
Witiko
Profil
Jak praví Joker. Za int stačí dosadit interval mezi "kontrolami dokončení scriptu" v milisekundách.
Darker
Profil
Chapu co myslite, s onclick jsem se prepsal.
Chtel jsem se prave vyhnout rozdeleni funkce na dve poloviny, potreboval jsem funkci, co vrati hodnotu az po chvili.
Omlouvam se za chybici diakritiku, jsem na ciste anglickem PC

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:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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