wie funktioniert javascript intern??
AlexS.
- javascript
hallo
ich habe einen ticker und bestimme, daß der ticker in einem div-container angezeigt wird. auf den div-container (dieser hat die id 'nummer1') greife ich wie folgt zu:
document.all.nummer1.innerHTML
als test habe ich die ganze sache mal so gemacht, daß der ticker
in einem input-feld erscheint. und so greife ich darauf zu:
document.myForm.myInput.value
das problem kommt jetzt:
wenn ich mit der ersten variante arbeite, d.h. ticker erscheint im div-container läuft der ticker sehr langsam. da nutzen auch timeout-einstellungen nichts.
dagegen, wenn ich die die zweite variante ausprobiere, läuft der ticker wunderbar schnell. mit den selben timeout einstellungen wie bei der ersten variante.
ich vermute (wie gesagt, reine vermutung):
mit 'document.myForm.myInput.value' kann sofort auf das feld zugegriffen werden.
mit 'document.all.nummer1.innerHTML' wird zuerst intern eine liste mit allen auf der seiten befindlichen objekte erstellt, bevor dann das angesprochene ausgesucht wird.
kann sein, daß ich mit meiner vermutung voll daneben liege. wie läuft das in beiden fällen intern ab?
und gibt es noch eine andere möglichkeit auf ein div oder ein beliebig anderes tag zuzugreifen??
bitte klärt mich auf. thx
later
AlexS.
Hallo Alex,
wenn ich mit der ersten variante arbeite, d.h. ticker erscheint im div-container läuft der ticker sehr langsam. da nutzen auch timeout-einstellungen nichts.
ich denke nicht, daß es bei der Objekt-Enumeration (finden des Objekts mit dem Namen xxx in der Liste aller Objekte) einen Geschwindigkeitsunterschied zwischen Document.Form.Input und Document.All.TagId gibt.
Vermutlich liegt es daran, daß das Input-Feld ein Standard Eingabefenster von Windows mit bestimmter Größe verwendet welches nur reinen Text enthält, während das div-tag bei Änderung des HTML-Inhalts zunächst mal den HTML-Parser einsetzen muß, um ggf. daß Aussehen und/oder die Größe des Div-Containers und seines Inhaltes ändern muß.
Deshalb versuche doch mal die Größe möglichst vorher schon einzustellen (<div style="width:80px;height:10px">) und den Inhalt mit Nummer1.innerText anstatt Nummer1.innerHTML zu verändern.
Cu Christoph
hallo christoph
Deshalb versuche doch mal die Größe möglichst vorher schon
»»einzustellen (<div style="width:80px;height:10px">) und den
Inhalt mit Nummer1.innerText anstatt Nummer1.innerHTML zu verändern.
danke für deinen vorschlag. probiere ich umgehend aus. und poste dann das ergebnis. vorerst thx
AlexS.
hallo christoph
Deshalb versuche doch mal die Größe möglichst vorher schon einzustellen (<div style="width:80px;height:10px">) und den Inhalt mit Nummer1.innerText anstatt Nummer1.innerHTML zu verändern.
habe ich gemacht, aber geändert hat sich überhaupt nichts. wie ich gesehen habe, war die länge des div sogar schon vorher eingetragen.
so long
AlexS.