Autor Zpráva
JanM
Profil *
Ahoj, narazil jsem na zajímavý problém. Snažím se během provádění scriptu informovat uživatele o okci, ale včiml jsem si že u IE (jako jediného) dojde njdřív ke zpracování všech akcí které jsem najdnou vyvolal a potom teprve k vypsání atd. Znamená to tedy že nemohu napsat např. čekejte, protože se to zobrazí když už dočekali.... Neví někdo prosím co s tím?
Mistr
Profil
Co děláš tak strašně časově náročného, že to stojí za uvažování o hlášce "Počkejte, usilovně pracuji a nevím, zda se někdy dobabrám až na konec." apod.?
Anonymní
Profil *
Mistr
asi na celu obrazovku vykresluje funkciu na mnozine komplexnych cisiel nejakym sialenym algoritmom :)
JanM
Profil *
Celé se to bude zpracovávat max. 5 vteřin, ale jde mi o uživatelský komfort. Teoreticky to musí být možné ne?? Nerozumím tomu proč to zase jediný IE nezvládá a je z toho problém. Měla by to být taková malá kalkulačka na ceny různých služeb, ale jde o graf. podobu. Nevěřím tomu že to už někdo neřešil. :o)
Mistr
Profil
JanM
To nemá význam. Naopak to uživatele znejistí: budou se jim strašně rychle míhat nějaké texty a oni je nezachytí. Já bych se na to vykašlal.

Pokud bys něco takového chtěl opravdu řešit, pak, myslím, podobnou věc používá Centrum.cz ve svém e-mailu. Nevím, nerozebíral jsem to. Jen se vzpomínám, že se kdysi velmi oháněli s tím, že mají mail udělaný pomocí JavaScriptů.
peta
Profil *
JanM Mistr "Co děláš tak strašně časově náročného?"
"Celé se to bude zpracovávat max. 5 vteřin"
?????
Tak to popis, co se dela. 5 vterin neznam nic, co by se dalo v kalkulacce delat. Aspon v te moji neni takova operace.

(se tyka javascriptu)
Jinak akce soucasne s necim se delaji pres casovace, protoze casovace bezi mimo script. IE dela to, ze si cely script provede dopredu a pak az vykresluje.
Vykreslovani je nejpomalejsi akce, takze vykreslovat status scriptu, pokud to fakt neni nezbytne, bych nedelal.
Takove demo bych mel mit hru cervici, tam to v IE tusim nejak dlouho prekresluje
www.volny.cz/peter.mlich/hry/hry.htm

A chtelo by to dodat odkaz na stranku. Takhle fakt nikdo nevi ani v jakem jazyku to delas.
peta
Profil *
Aha, tek ten jazyk, sory, sem si nevsim, vetsina lidi dava podobne dotazy do "Jak neco udelat"
Fred
Profil
Jestli potřebuješ jenom vyvolat dojem, že se něco děje, aby uživatel neodešel, můžeš zkusit nastylovat na pozadí animovaný gif, který se pak překryje výsledkem.
JanM
Profil *
Fred:
Dobře, to sice mohu, ale jak mohu vědět, že se nestane to samé co u jiných příkazů a neobjeví a nezmizí ten obrázek až po konci scriptu, takže ani nic nepostřehnu??
Mistr
Profil
JanM
Chtěl jsem odpovědět na Tvůj dotaz Fredovi místo něj, abych mu trošku ulehčil práci, ale fakt jsem z toho nepochopil, o co Ti vlastně jde.
JanM
Profil *
No jednoduše, pokud se bude po dobu max. 4 s. něco vykonávat, potřebuji aby se uživatel dozvěděl že se to právě vykonává.. Stačilo by předtím vypsat hlášku, jenže pokud to udělám, vypíše se až když je to hotové a tím pádem se rovnou aktivuje příkaz který mi ji zruší... Domnívám se že by to se skrytím nebo objevením obrázku bylo to samé. Jediné co mi funguje je vypsání do stavového řádku, to se provádí rovnou, ale jinak až po zpracování celého scriptu...
habendorf
Profil
Stačilo by předtím vypsat hlášku, jenže pokud to udělám, vypíše se až když je to hotové a tím pádem se rovnou aktivuje příkaz který mi ji zruší... Domnívám se že by to se skrytím nebo objevením obrázku bylo to samé.

Vůbec nechápu. Prostě skript začne odkrytím hlášky, pak může dělat cokoliv a nakonec ji zase skryje. V čem konkrétně je problém?

<script>
odkryj hlášku;
dělej cokoliv bůhví jak dlouho;
skryj hlášku;
</script>
JanM
Profil *
habendorf:
Problém je v tom že pokud si to co jsi napsal napíšeš do stránky a dáš spustit v Exploreru, nejdřív se zpracují všechny příkazy a potom se teprve začnou vypisovat výsledky.

Takže pokud bych chtěl vypsat hlášku;
vypočítat bilion operací;
skrýt vypsanou hlášku;


V podstatě by to šlo, ale v IE to nejdřív spočítá bilion operací a potom to objeví a ihned zase skryje hlášku. Tak se mi to jeví.
peta
Profil *
habendorf
Presne, jak pise JanM.
Teorie je spravna, ale IE zpracovava scripty dopredu.

JanM
jak uz jsme psal, musis tam zabudovat casovac. Casovac je synchronizovany casem a zpracovava se v IE nezavisle na ostatnim.
Jako priklad jsem ti uvedl tuto hru. Zda se, ze nemas cas se na ni kouknout
http://www.volny.cz/peter.mlich/hry/cervi.htm
Staci kliknout START
Konkretne se snazim resetovat hraci plochu, coz v IE trva asi 10s, ve FF asi 4s
peta
Profil *
JanM
konkretne, kdybys to nepochopil, tak script, na ktery cekam jsem vsunul do casovace, ktery spoustim za 111ms.
Na konci scriptu se prepise promenna timerID scriptem HODINY, ty tam misto toho das clearTimeout(timerID)
JanM
Profil *
Díky, to je přesně to co jsem potřeboval! V té hře se moc nevyznám, ale časovač jsem už zabudovaný měl, jen jsem nevěděl jak zakázat jeho opakovanou funkci... Takže cleartimeout nastaví nulu? A jak udělám aby nejel znovu?
JanM
Profil *
Tak jsem to zkusil a cleartimeout sice nastavil nulu, ale zastavil se tím i druhý časovač. :o(
Mistr
Profil
Kolegové, a co kdyby se to vyřešilo dvěma skripty za sebou? Takhle nějak by to pak vypadalo:

<script>

zobraz hlášku, že skript pracuje
</script>

<script>
tady bude ten JavaScript, co tu JanM chce mít a co mu zatím dělá tolik vrásek na čele
</script>


To by nefungovalo?
JanM
Profil *
Mistr:
D9k za snahu, ale tak jednoduché to není, IE je fakt ****. Stejně se to po vyvolání funkce zpracovává najednou... Nepomůže ani vyvolání více funkcí najednou a to vypsání nechat na nějaké separované...
peta
Profil *
JanM
Clovece...
Zkousel jsi premyslet, pro mi to funguje a tobe ne?
samotna akce spusteni casovace funguje. Aby se mi neopakoval, tak tuto akci priradim do promenne. Pokud tu promennou pak vynulujes nebo udelas clear, tak zastavis casovac.
Pokud chces mit 2 nezavisle casovace, mel bys kazdy davat do jine promenne
Cili, "timerID" je naprosto vymyslene jmeno a mohlo se to jmenovat treba "aaa"
JanM
Profil *
No dokonce jsem se nad tím zamyslel, proměnnou jsem dal samozřejmě jinou a nuluje se mi to, ale potom co se to vynuluje nepokračují další akce. No nějak si s tím snad už poradím, hlavně když mám vzorovou stránku!
Toto téma je uzamčeno. Odpověď nelze zaslat.

0