Autor Zpráva
matak
Profil
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
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
vice optimalizovat nevidim moznost da se to obejit jinak?
Dero
Profil
vice optimalizovat nevidim moznost da se to obejit jinak?

Dá, ale jsou to víceméně neefektivní prasárny.
matak
Profil
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
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
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
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
no pokud chces presouvat vetve tak predpokladam ze jo, ale mozna ze mi neco uchazi, a dynamicky prirazovat? znamena?
souki
Profil
matak
document.getElementById('vetev').onmousedown = function(){
// funkce
}
matak
Profil
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
Toto téma je uzamčeno. Odpověď nelze zaslat.