Autor | Zpráva | ||
---|---|---|---|
JanM Profil * |
#1 · Zasláno: 6. 2. 2006, 23:30:54
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 |
#2 · Zasláno: 7. 2. 2006, 00:10:45
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 * |
#3 · Zasláno: 7. 2. 2006, 01:00:59
Mistr
asi na celu obrazovku vykresluje funkciu na mnozine komplexnych cisiel nejakym sialenym algoritmom :) |
||
JanM Profil * |
#4 · Zasláno: 7. 2. 2006, 01:22:10
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 |
#5 · Zasláno: 7. 2. 2006, 02:27:36
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 * |
#6 · Zasláno: 7. 2. 2006, 07:42:04
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 * |
#7 · Zasláno: 7. 2. 2006, 07:42:51
Aha, tek ten jazyk, sory, sem si nevsim, vetsina lidi dava podobne dotazy do "Jak neco udelat"
|
||
Fred Profil |
#8 · Zasláno: 7. 2. 2006, 11:10:03
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 * |
#9 · Zasláno: 7. 2. 2006, 19:41:48
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 |
#10 · Zasláno: 8. 2. 2006, 01:44:12
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 * |
#11 · Zasláno: 8. 2. 2006, 13:37:33
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 |
#12 · Zasláno: 8. 2. 2006, 13:57:48
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 * |
#13 · Zasláno: 8. 2. 2006, 15:13:39
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 * |
#14 · Zasláno: 8. 2. 2006, 16:17:07
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 * |
#15 · Zasláno: 8. 2. 2006, 16:21:35
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 * |
#16 · Zasláno: 8. 2. 2006, 16:37:18
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 * |
#17 · Zasláno: 8. 2. 2006, 17:21:41
Tak jsem to zkusil a cleartimeout sice nastavil nulu, ale zastavil se tím i druhý časovač. :o(
|
||
Mistr Profil |
#18 · Zasláno: 8. 2. 2006, 18:11:32
Kolegové, a co kdyby se to vyřešilo dvěma skripty za sebou? Takhle nějak by to pak vypadalo:
<script> To by nefungovalo? |
||
JanM Profil * |
#19 · Zasláno: 8. 2. 2006, 18:26:13
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 * |
#20 · Zasláno: 8. 2. 2006, 19:04:20
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 * |
#21 · Zasláno: 8. 2. 2006, 19:25:23
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!
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0