+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 19

Thema: innerHTML Austausch langsam

  1. #1
    karl001 ist offline Grünschnabel karl001 befindet sich auf einem aufstrebenden Ast
    registriert
    09-03-2010
    Beiträge
    7

    innerHTML Austausch langsam

    Hallo,
    ich habe ein Problem mit innerHTML. Und zwar wenn ich eine grössere Rückgabe von meinem Server hab (ich schätze mal so 3000 Elemente mit maximal 30 Zeichen Text Inhalt) und diese per AJAX (DIV und innerHTML) in meine Webseite einbinde (altes DIV wird ersetzt) dauert dies sehr lange (ca 1000 ms nur das Austauschen). Ich habe bereits gegooglet und replaceHTML gefunden, womit es eigentlich schneller gehen soll, aber das tut es nicht. Per reinem DOM Austausch hab ich es auch schon versucht, dies dauert aber nur noch länger. Sowohl im FF und IE dauert es recht lang. Ich weiss echt so langsam nicht mehr weiter, weiss jemand woran dies noch liegen könnte?
    MfG

  2.    Empfehlenswerte Literatur von unserem Partner Terrashop

    Das AJAX Kompendium jetzt 84% Rabatt
    Ajax - der Technologiemix aus JavaScript und XML - ist eines der Kernstücke professioneller Web 2.0-Programmierung. Dieses Buch führt Sie auf über 800 Seiten(!) von den ersten JavaScript-Codezeilen bis zur Entwicklung mit Ajax-Frameworks.

    Preis: früher: 49,95€ - jetzt nur: 7,95€

    Hier geht es direkt zum Buch

    Über 1.000 weitere IT-Bücher zum Sonderpreis lieferbar!

  3. #2
    Avatar von ein schlauer
    ein schlauer ist offline Lounge-Member ein schlauer befindet sich auf einem aufstrebenden Ast
    registriert
    18-08-2004
    Ort
    Mainz
    Beiträge
    10.883

    AW: innerHTML Austausch langsam

    Hast du's schon mal mit einem documentFragment probiert?

  4. #3
    Avatar von kkapsner
    kkapsner ist offline Moderator kkapsner befindet sich auf einem aufstrebenden Ast
    registriert
    28-03-2008
    Beiträge
    5.531

    AW: innerHTML Austausch langsam

    documentFragment kennt kein innerHTML...

  5. #4
    hesst ist offline Foren-Gott hesst befindet sich auf einem aufstrebenden Ast
    registriert
    19-05-2008
    Beiträge
    2.842

    AW: innerHTML Austausch langsam

    Zitat Zitat von kkapsner Beitrag anzeigen
    documentFragment kennt kein innerHTML...
    der schlaue meint sicher per dom, aber ich vermute dass hier, rein durch die js-laufzeit, innerHTML schneller ist.
    per dom fügst du ja jedes element per js ein.

  6. #5
    Avatar von kkapsner
    kkapsner ist offline Moderator kkapsner befindet sich auf einem aufstrebenden Ast
    registriert
    28-03-2008
    Beiträge
    5.531

    AW: innerHTML Austausch langsam

    Ich vermute ja schwer, dass alleine die Übertragungszeit schon viel ausmacht.

  7. #6
    Avatar von ein schlauer
    ein schlauer ist offline Lounge-Member ein schlauer befindet sich auf einem aufstrebenden Ast
    registriert
    18-08-2004
    Ort
    Mainz
    Beiträge
    10.883

    AW: innerHTML Austausch langsam

    Nein, ich meine documentFragement

  8. #7
    hesst ist offline Foren-Gott hesst befindet sich auf einem aufstrebenden Ast
    registriert
    19-05-2008
    Beiträge
    2.842

    AW: innerHTML Austausch langsam

    Zitat Zitat von ein schlauer Beitrag anzeigen
    Nein, ich meine documentFragement
    ja, hatte ich auch so verstanden, nur musst du die 3000 elemente auch dort einfügen?!

  9. #8
    Avatar von kkapsner
    kkapsner ist offline Moderator kkapsner befindet sich auf einem aufstrebenden Ast
    registriert
    28-03-2008
    Beiträge
    5.531

    AW: innerHTML Austausch langsam

    Ja - aber das kennt kein innerHTML. Da musst du dir zusätzlich ein DIV/o.Ä. erzeugen - da mit innerHTML alles reinschreiben und dann alle Elemente von dort in das documentFragment rüberschaufeln.
    K.A. ob das schneller ist (hab' gerade meine Umgebung nicht zur Verfügung). Aber documentFragment umgeht eigentlich nur das Problem des wiederholten Renderns der Seite beim einfügen vieler Elemente per DOM - aber bei innerHTML bin ich der Meinung, dass sowieso nur ein Rerender ausgeführt wird (kann mich aber auch täuschen)... und in dem Link wird auch gezeigt, dass v.A. das Löschen der Elemente viel Zeit braucht (per DOM löschen kann da etwas schneller sein - war in meinem Test abhängig von der Anzahl der Elemente).

  10. #9
    karl001 ist offline Grünschnabel karl001 befindet sich auf einem aufstrebenden Ast
    registriert
    09-03-2010
    Beiträge
    7

    AW: innerHTML Austausch langsam

    Die Antworten kommen ja flott ^^
    Also was mir beim Testen aufgefallen ist: Wenn ich die grosse Tabelle (das, was ich einfüge) ohne INPUT Felder mache geht es in einem Bruchteil der Zeit (ca 1/4). Mit INPUT-Feldern (2 pro Zeile) dauert es sehr lange.

  11. #10
    Avatar von kkapsner
    kkapsner ist offline Moderator kkapsner befindet sich auf einem aufstrebenden Ast
    registriert
    28-03-2008
    Beiträge
    5.531

    AW: innerHTML Austausch langsam

    Test doch mal, wie lange es dauert, bis du überhaupt zu deinem .innerHTML = kommst.
    Hast du mal einen Testlink?

  12. #11
    karl001 ist offline Grünschnabel karl001 befindet sich auf einem aufstrebenden Ast
    registriert
    09-03-2010
    Beiträge
    7

    AW: innerHTML Austausch langsam

    Also ich benutze Firebug und wenn ich das div=innerHTML auslagere in eine extra Methode dauert nur diese so lange. Der Ajax Request an sich dauert keine 20 ms. Wobei man sagen muss dass alles sehr schwankt von der Abfragezeit, von 600 ms - 1000 ms, obwohl die ganze Sache lokal abläuft.
    Edit: Nein ich habe leider keinen Testlink, läuft alles intern.

  13. #12
    hesst ist offline Foren-Gott hesst befindet sich auf einem aufstrebenden Ast
    registriert
    19-05-2008
    Beiträge
    2.842

    AW: innerHTML Austausch langsam

    ich habe mal den test von hier http://forum.jswelt.de/javascript/49...tml#post314360 (Erfahrung mit DOMAssistant ?)
    umgebaut. 5000 elemente in ein div:

    ------------------IE7:-------------FF 3.5.8:------------Opera 9.10
    innerHTML:________31_______________83___________________31
    documentFragment:_235______________103__________________47
    document:_________4500_____________183__________________63

    jetzt mal mit 5000 input-elementen
    innerHTML:________78_______________1331_________________31


    scheint so, als hätte der FF da probleme

    EDIT: das divs ist zw 2 tests bereinigt worden
    Geändert von hesst (09-03-2010 um 16:21 Uhr)

  14. #13
    karl001 ist offline Grünschnabel karl001 befindet sich auf einem aufstrebenden Ast
    registriert
    09-03-2010
    Beiträge
    7

    AW: innerHTML Austausch langsam

    Okay, danke für den Test. Dann scheinen wir das Problem ja eingegrenzt zu haben. Wenn ich jetzt noch eine Lösung hätte wär ich gänzlich zufrieden

  15. #14
    hesst ist offline Foren-Gott hesst befindet sich auf einem aufstrebenden Ast
    registriert
    19-05-2008
    Beiträge
    2.842

    AW: innerHTML Austausch langsam

    was soll es da für eine lösung geben? du kannst noch versuchen, wie der schlaue schon sagte, dies mal per documentFragement zu lösen und testen ob der ff da schneller ist. was anderes fällt mir jedenfalls nicht ein

  16. #15
    karl001 ist offline Grünschnabel karl001 befindet sich auf einem aufstrebenden Ast
    registriert
    09-03-2010
    Beiträge
    7

    AW: innerHTML Austausch langsam

    Habs jetzt mal mit documentFragment versucht. Ist nicht wesentlich schneller, vielleicht 5%. Aber bei über 600ms hilft mir das nicht sonderlich weiter. So langsam bin ich echt mit meinem Latein am Ende. Es ist ja nicht nur der FF, auch der IE hat ne ewige Verzögerung. Es scheint dass es daran liegt, dass der auszutauschende String zu lang ist und daher die JavaScript Engine kurz überlastet was einen kurzen Freeze zur Folge hat.
    Habs jetzt mal auf nem schnelleren Rechner ausprobiert, da gehts auch um einiges schneller, ca 200 ms. Ich wüsste aber nicht wie ich das Austauschen noch performanter könnte gestalten.
    Geändert von karl001 (10-03-2010 um 11:40 Uhr)

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Ähnliche Themen

  1. iFrame mit innerHTML bei Opera?
    Von ilmer im Forum JavaScript
    Antworten: 19
    Letzter Beitrag: 27-12-2009, 18:06
  2. innerHTML
    Von Flubber im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 10-08-2009, 23:45
  3. innerhtml einer variable zuweisen
    Von erg im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 11-07-2006, 14:19
  4. Antworten: 10
    Letzter Beitrag: 29-01-2006, 10:10
  5. instabiles innerHTML
    Von it's-me im Forum JavaScript
    Antworten: 13
    Letzter Beitrag: 10-12-2002, 22:43

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein