| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Banned Registriert seit: Jan 2006
Beiträge: 849
| Parser klasse problem bei "while"... Der flashplayer wird durch ein script verlangsam
Hi folgendes problem ich schreibe gerade neparser klasse sowei kein grosses ding... eigentlich.. aber nun komme ich dazu das ich die childnodes aalle durchlaufe... soweit auch kein problem allerdings beinhaltet die kürzeste liste (die ich habe) genau 71 (unter) knoten mit jeweils 5-6 attributen... sollte man eigentlich meinen das das kein problem ist... aber ich merke beim film testen schon das er endlos lange parst.. dann kommt irgendwann die meldung die bei einer sich totlaufenden applikation immer in flash kommt... "der flashplayer wird durch ein script in diesem film verangsamt wollen sie verarbeitung des scriptes abbrechen ...." meine schleife sieht so aus.... PHP-Code: laos steht in der ersten zeole noch.. PHP-Code: also ausgetracer bekommi ich da oben dieses huhu und dann bei der "aktuellen" xml datei 71 einträge und selbst bei dieser ebkomme ich die fehlermeldung, klicke ich hier auf nein.. also das script soll weiter ausgeführt werden, hab ich kurze zeit spüter alle ergebnissse...AAABBBBEEERRR die die ich eigentlich ausgeben will hat 675 und wenn ich da auf nein klicke kommt nur immer wieder diese fehlermeldung und das bis zum exitus...wer sich nun fragt was die function convert html entities ist... das was der name schon sagt..da wird nur & gegen & zum beispiel ausgetauscht wird... und an dieser liegts absolut nicht die hab ich da schonmal rausgenommen selbes problem also wer hat ne lösung? Geändert von _level0 (30-01-2006 um 22:07 Uhr) |
| | |
| | #2 (permalink) |
| Banned Registriert seit: Jan 2006
Beiträge: 849
|
hmmm ok es liegt gar nicht an der schleife oben ![]() es liegt an einer anderen schleife udnzwar einer aus dem aufrufenden flash... undzwar dieser schleife hier: PHP-Code: und das problem tritt nur auf wenn ich das letzte PHP-Code: aber es liegt nicht am inhalt selber ... setze ich es weiter nach vorne und lasse dafür was anderes weg.... gehts auch ohne fehlermeldung! |
| | |
| | #3 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 17.278
|
"..es liegt an einer anderen schleife.." nett, das du uns lösungen gibst, für probleme, die wir ohne dich garnicht hätten ;-) bleibt die generelle frage, warum alle immer ein XML in ein array umbauen müssen? über das attribut id kann direkt auf XML-nodes zugegriffen werden. Code: _xml = new XML('<blabla><a id="aaa"><b>bbb</b><c id="ccc">ccccc</c></a><blabla>');
//
if (getSWFVersion()<8) {
trace(_xml["aaa"]);
trace(_xml.ccc);
} else {
trace(_xml.idMap["aaa"]);
trace(_xml.idMap.ccc);
}
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (31-01-2006 um 00:47 Uhr) |
| | |
| | #4 (permalink) |
| Banned Registriert seit: Jan 2006
Beiträge: 849
|
ok problemstelung ... ein xml 2 firstchild.childnodes (head und body) body hat 70(nachher 1000) childnodes inhalte liegen nur in atributen vor gewünschts ausgabe für das body tag atibut1 von subnode 1 atibut2 von subnode 1 atibut3 von subnode 1 atibut4 von subnode 1 atibut5 von subnode 1 atibut6 von subnode 1 atibut1 von subnode 2 atibut2 von subnode 2 atibut3 von subnode 2 atibut4 von subnode 2 atibut5 von subnode 2 atibut6 von subnode 2 und so weiter (insgesamt 70 nachher 1000 mal) daher hab ich 6 arrays angelegt und die attribute der nodes dann darf verteilt...diese wiederum in ein array gepackt... das geschieht alles in der angesprochneen klasse.. danach wird der spass im eigentlichen film abgerufen und wie oben in ein textfeld geschrieben.... denkst du es wäre perfomanter wenn ich mir das mit den arrays spare? und den spass nur über xml löse, ich hatte es zwischenzeitlich .. bzw am anfang nur mit bejecten geregelt und da hatte ich selbige probleme... und warum das alles in einer klasse und einzeln übergeben.. weil es am einfachsten ist um nachher GUI von backend zu trennen (zumindest logisch) bitte klär mich auf wenn du einen perfomanteren weg weisst weil ih denke auf dem weg komm ich nie ans ziel(oder erst wenn bei flashplayer version 750) |
| | |
| | #5 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 17.278
|
hab noch ein bisschen probiert: Code: _xml = new XML('<blabla><a id="aaa"><b>bbb</b><c id="ccc" name="xxx">cccccc</c></a><blabla>');
//
var link = (getSWFVersion()<8) ? _xml : _xml.idMap;
//
trace(link["aaa"]);
trace(link.ccc);
link.ccc.attributes.name = "Karl";
link.ccc.firstChild.nodeValue = "fffffffff";
trace(link.ccc);
var cccValue = link.ccc.firstChild.nodeValue;
var cccName = link.ccc.attributes.name;
trace(cccValue);
trace(cccName); die antwort nach dem sinn des lebens und allem anderen ist 42 ich kenne weder deine daten, noch wie du diese benutzen willst. die arbeit muss auf jeden fall geleistet werden. die frage ist: ob man am anfang merklich lange warten muss oder immer mal zwischendurch unmerklich lange ;-) u.U. langt es nur teile in ein array zu sammeln? und wie du am code siehst, man kann direkt in das XML schreiben und daraus lesen. alles eine frage der organisation.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (31-01-2006 um 01:28 Uhr) |
| | |
| | #6 (permalink) |
| Banned Registriert seit: Jan 2006
Beiträge: 849
|
ok die frage nach dem performanter hat sich erledigt.. ich hab alles mal provesorisch in die klasse eingebaut... also mache nur einen schleifendurchlauf. und schreibe den text als string mit htmal tags den ich dann übergebe.. ist nun sehr viel schneller und die 70 schafft er schonmal ![]() EDIT:.. naja performanter ist es auf jedenfall, aber bei 674 einträgen braucht das teil auf meinem rechner inklusive laden der 256 kb grossen datei zwischen 45 sekunden und 1 minute ![]() .... zu lange also muss ich alles umbauen und es mit nem intervall machen und damit fällt denke ich das mit der Klasse flach und ich kann gleich alles auslagern .. damit wäre ich dann auch im falschen forum... was das alles für folgen hat..wenn du es genau wissen willst ich bastle gerade eine erweiterung für meinen bereits funktionierenden rss reader.. da ich ich zwar schon eine eigen lib eingebaut habe mit wichtigen blogs und foren...aber das ganze möglichste noche rweitern wollte... wollte ich noch einen OPML Reader / Scanner intergrieren (OPML) Geändert von _level0 (31-01-2006 um 01:44 Uhr) |
| | |
| | #7 (permalink) |
| Banned Registriert seit: Jan 2006
Beiträge: 849
|
noch ne blöde frage, wo du eben erwähntest das xml und arrays miteinander zu verdinden nicht so gut wäre... wo ich dir zumndest nach meinen bisherigen tests zustimme, hast du irgenwoe ein beispiel wigentlich müsste ich das xml doch als dataprovider für eine datagrid komponente verwenden können aber wenn ich den XMLNode aus der klasse übergebe und den als dataprovider für ein datagrid angebe bleibt dieser leer |
| | |
| | #8 (permalink) |
| Banned Registriert seit: Jan 2006
Beiträge: 849
|
bin intwischen mit meiner ersten lösung(array) + datagrid anstelle von html textfeld + dataprovider jetzt auf ca. 16 sekunden runter bei 265kb datei mit 674 reihen a jeweils 8 einträgen also 5400 zellen ![]() wenn jemand doch was einfällt wie es doch noch etwas schneller und perfomanter geht bitte melden... machts da eigentlich noch sinn jetzt noch das grosse array in kleinere zu spliten um den dataprovider kleiner zu halten und dem user ein blättern zu ermöglichen?, weil ich merke das der datagrid ziemlich auf die performance des rechners drückt (ca 50% mehr cpu last) |
| | |
| | #9 (permalink) |
| Flashaholic Registriert seit: Feb 2003 Ort: Berlin
Beiträge: 1.459
|
also ich würde ne blätter funktion mit integrieren, also immer nur 100 einträge anzeigen und unter dem datagrid einfach ne ComboBox mit der anzeilen der Seiten und eine einfaches >>Vor <<Zurück mfg alex
__________________ TVNEXT Solutions |
| | |
| | #10 (permalink) |
| Banned Registriert seit: Jan 2006
Beiträge: 849
|
dachte ich mir auch so nicht nur um die resourcen zu sparen sondern auch um es übersichtlicher zu halten, dann werd ich suchf und sortierungsfunktionen wohl besser für die arrays oder das xml schreiben. fragt sich was dann länger dauert... xml durchsuchen und parsen oder das array mit über 5400 inhalten zu durchsuchen... btw , ich hab eben beim suchen irgendwo bei MM gelesen das die datagrid kmoponente "nur" 5000 Zellen maximal schafft, wie kommts das bei mir 5400 angezeigt werden?(ob sie wirklich alle da sind weiss ich nicht aber der erste ist da und der letzte ist da und dazwischen viel zum scrollen) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |