Autor | Zpráva | ||
---|---|---|---|
matak Profil |
#1 · Zasláno: 2. 4. 2007, 00:21:03
Uz jste nekdo spozoroval hlasku v IE, ze beh skriptu je prilis narocny a ze je doporuceno jeho zastaveni s tim ze je na vyber ano, ne.
Jak to pozna?jaky je duvod?jak se tomu vyhnout? stava se mi to pri document.write() uvnitr nejakeho cyklu pri cemz vygenerovany string ma kolem 200-300kb. Konkretni situace je zobrazeni stromu kategorii, kde vypisuji strom rekurzí. |
||
Dero Profil |
#2 · Zasláno: 2. 4. 2007, 00:45:22
IE nepoužívám, ale Firefox se mě ptá obdobně. Pozná se to na základě interního časovače. Pokud skript běží déle než X sekund, je navrženo jeho ukončení. Důvod je nasnadě: nebezpečí nekonečné smyčky, záškodnického skriptu, ponouknutí k lepší optimalizaci.
Vyhnout se tomu lze jen vytvářením časově méně náročným skriptům. S podobným problémem se však potýká mnoho komplexních skriptů, za všechny jmenuji alespoň geniální meebo.com |
||
matak Profil |
#3 · Zasláno: 2. 4. 2007, 00:49:40
vice optimalizovat nevidim moznost da se to obejit jinak?
|
||
Dero Profil |
#4 · Zasláno: 2. 4. 2007, 00:57:20
vice optimalizovat nevidim moznost da se to obejit jinak?
Dá, ale jsou to víceméně neefektivní prasárny. |
||
matak Profil |
#5 · Zasláno: 2. 4. 2007, 01:01:20
tak ted nevim co s tim, generuji seznam, strukturu stromu tvorenou UL tagy a spousty dalsiho uvnitr pri vetsim rozsahu ma az 1MB to nevim jestli je dobry napad po kadzem pozadavku tahat pres net, myslel jsem ze tomu ulehcim kdyz budu cely strom generovat pomoci js ale zase narazim na tohle, snad jen skript opakovane volat po urcitem case nebo fakt nevim co s tim
|
||
peta Profil |
#6 · Zasláno: 2. 4. 2007, 09:08:30 · Upravil/a: peta
matak
Strom, ktery ma 1M znamena, jako bys pracoval s obema dily Robinsona Crusoe. jestli vis, jak je tlusty. Prumerne to ma tak 350k jeden. Prumerna stranka ma 5-20k, prumerny rozsah JS kolem 10-100k. (hodnoty odhaduji z vlastni zkusenosti) To jen pro predstavu. Cili ta hlaska se objevuje naprosto opravnene, protoze prilis zatezujes prohlizec. Lze to obejit postupnym nacitanim JS ajaxovymi metodami nebo presunutim scriptu pod casovac (jakpsatweb - javascript - priklady - datum a cas), ktery bezi momo tyto hlasky. Samozrejme, kdyz jej nepretizis a budes akci opakovat treba po 10-100 zaznamech. Kazdopadne, byt uzivatel a dlouho se nic nedeje, stranku opoustim. |
||
matak Profil |
#7 · Zasláno: 2. 4. 2007, 18:16:46
vim vim tady se jedna o administraci, uzivatel stranku neopusti, predstav si adresarovy strom aktualne je zde kolem 14000 polozek, predstav si ze kazda polozka je uzavrena do nejakeho tagu, nazev, datum, velikost, ted onmouseclick, onmouseover, oncontext, onmousedown atd atd, pak 2500 polozek ma vygenerovany string zhruba 1MB, coz nemusi byt az tak neobvykle..
to s tim prerusovanim me take napadlo, proto hledam kolik sekund maji nastavene prohlizece proti zamrznuti, napadlo me pocitat pocet sekund behu skriptu a pred deadline skript zastavit a spustit znova casovanou funkci tim snad prohlizec bude povazovat funkci za ukoncenou a ta se spusti za par milisekund znovu, snad by to bylo reseni |
||
souki Profil |
#8 · Zasláno: 2. 4. 2007, 19:27:25
ted onmouseclick, onmouseover, oncontext,
Můžeš načíst dynamicky a nemusíš každému přiřazovat onmouclick='asdfsdfsdf' A opravdu bude uživatele bavit čekat 4 minuty než mu naskočí celý strom, kde jednou klikne a zase půjde? Opravdu je potřeba načíst všechno? |
||
matak Profil |
#9 · Zasláno: 2. 4. 2007, 20:00:10
no pokud chces presouvat vetve tak predpokladam ze jo, ale mozna ze mi neco uchazi, a dynamicky prirazovat? znamena?
|
||
souki Profil |
#10 · Zasláno: 2. 4. 2007, 20:03:39
matak
document.getElementById('vetev').onmousedown = function(){ // funkce } |
||
matak Profil |
#11 · Zasláno: 2. 4. 2007, 20:09:39
no jasne tak to ted delam ale to prece neni o moc rychlejsi stejne musim projit vsech napr 2500 polozek a priradit jim funkci pomoci nejakeho cyklu rozdil je ze strom uz je nakresleny a prirazuji to pustupne
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0