Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 16 bis 30 von 38
  1. #16
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.667

    AW: Erfahrung mit DOMAssistant ?

    Zitat Zitat von bis Beitrag anzeigen
    Ich müßte es so interpretieren, daß DOM langsamer wäre (warum sonst DOM verneiden?).
    ich auch (beim erzeugen)

    Zitat Zitat von bis Beitrag anzeigen
    Das ist aber offensichtlich nicht der Fall, sondern umgedreht, DOM ist nicht nur in dem Beispiel von kkapsner aus dem anderen Monster-Faden erheblich schneller, sondern auch nach allem, was ich sonst im Netz gelesen habe.
    es ist ein unterschied auf der einen seite ständig neue elemente löschen und neu erstellen durch manipulation der eigenschaften einmal erstellter elemente zu ersetzen und auf der anderen das erzeugen von elementen über einen aufruf von innerHTML durch mehrmalige aufrufe von createElement/appendChild... ersetzen zu wollen.
    ich habe keine vergleiche vorgenommen, nur denke ich ext hat das nicht umsonst so gelöst und beschrieben.

    Zitat Zitat von bis Beitrag anzeigen
    Nur noch zu Erklärung: im Falle dieses neuen Produktes (wir sollten das nicht durcheinander bringen) sind regelmäßig und häufig mehrere 1000 oder sogar ein paar zehntausend Elemente im Browser zu verändern.
    verändern ist etwas anderes. dazu brauchst du keine dom funktionen. die eigenschaften der objekte kannst du direkt setzen.

  2. #17
    bis
    bis ist offline Routinier
    registriert
    09-09-2009
    Beiträge
    459

    AW: Erfahrung mit DOMAssistant ?

    Zitat Zitat von Albu Beitrag anzeigen
    Kompatibel ist relativ. Da beide Seiten aus Deiner Feder stammen, kannst Du, wirst Du und hast Du bereits Anpassungen auf beiden Seiten durchgeführt.
    Mit kompatibel meinte ich in diesem Falle zuerst einmal die Namenskonventionen, zweitens aber auch die Methodik, z. B. eine saubere MVC-Implementierung (was bei Javascript eher die große Ausnahme zu sein scheint).


    Zitat Zitat von Albu Beitrag anzeigen
    Jetzt musst Du diese Konventionen nur noch den Entwicklerteams von ExtJS und DOMAssistant beibringen. Denn Dein eigenes Namensschema kannst Du diesen sicherlich nicht einfach so aufdrücken, da Du sonst die Möglichkeit zum Update/Upgrade auf eine neuere Version verlierst.
    Bzgl. der Konventionen sprach ich von meinem eigenen Code. Deshalb habe ich der begonnen, eine Zwischen-Ebene zu schaffen zwischen Bibliotheken und meinem eigenen Anwendungs-Code. Das erleichtert auch Updates der darunter liegenden Bibliotheken.

    Dieses Prinzip enthält die Regel, daß Methoden-Aufrufe der darunterliegenden fremden Bibliotheken nicht in den Modellen oder Controller-Klassen aufgerufen werden, sondern in einem internen Zwischen-Layer (Interface-Klassen) gekapselt sind. Dieses Prinzip wird weitestgehend, wenn auch nicht absolut vollständig durchgehalten.

    Dieses Prinzip hat sich bisher immer noch als gut erwiesen, so z. B. beim Datenbank-Interface in der Smalltalk-Software und auch davor. Dort arbeiten z. B. die Daten-Modelle niemals direkt mit irgendwelchen SQL-Befehlen, sondern alles geht über einen internen Abstraktion-Layer, wo aus höheren Methoden-Aufrufen dann konkret das erzeugt wird, was die Datenbank erwartet. Analog hier.

    Zitat Zitat von Albu Beitrag anzeigen
    Den Browser wirst Du nicht schneller bekommen. Und Zeitprobleme hören sich eher danach an, dass auf Sachen zugegriffen wird, bevor diese tatsächlich vorhanden oder initialisiert sind.
    Bei den erwarteten Zeitproblemen beziehe ich mich auf den Unterschied zwischen direkten DOM-Zugriffen und der Verwendung von HTML (s. o.). Nach meinem derzeitigen jugendlichen Kenntnisstand ist DOM hier um einiges schneller. Ihre ich mich?

  3. #18
    bis
    bis ist offline Routinier
    registriert
    09-09-2009
    Beiträge
    459

    AW: Erfahrung mit DOMAssistant ?

    @hesst:
    Verstehe ich nicht: in dem genannten Beispiel von kkapsner erfolgte die Änderung doch über eine DOM-Funktion, indem die Koordinaten neu gesetzt worden. Wo ist hier der Unterschied zum "Eigenschaften der Objekte direkt setzen"?

    Zitat Zitat von hesst Beitrag anzeigen
    verändern ist etwas anderes. dazu brauchst du keine dom funktionen. die eigenschaften der objekte kannst du direkt setzen.
    Auch das verstehe ich nicht: ich meinte bisher mit dem Aufruf von DOM-Funktionen, was für mich identisch ist mit dem "Eigenschaften der Objekte direkt setzen" z. B. diese Befehle:

    Code:
    domObj.setAttribute("name","myname")  oder aber:
    domOb.name = "myname"

  4. #19
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Erfahrung mit DOMAssistant ?

    Mal ganz abgesehen davon, ob die vermeintlichen Probleme existieren oder nicht (wie gesagt, die Eventprobleme von denen du sprichst, existieren so wie du sie beschreibst definitiv nicht), ist es aber bei der Anzahl der Elemente die du nennstt, wenn es um Performance geht, sinnvoll mit documentFragement zu arbeiten, was meines Wissens bisher noch kein Frameworks macht.

  5. #20
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Erfahrung mit DOMAssistant ?

    Zitat Zitat von bis Beitrag anzeigen
    Auch das verstehe ich nicht: ich meinte bisher mit dem Aufruf von DOM-Funktionen, was für mich identisch ist mit dem "Eigenschaften der Objekte direkt setzen" z. B. diese Befehle:

    Code:
    domObj.setAttribute("name","myname")  oder aber:
    domOb.name = "myname"
    Das sind nur zwei vermeintlich ähnliche Sachen. Mit setAttribut bildest du die Eigenschaften des HTML Elementes ab, das zweite ist einer allgemeiner Zugriff auf die Objekteigenschaft. Die Funktion der beiden ist daher oft völlig unterschiedlich, z.b. ist style in der ersten Variante eine String den du beschreiben kannst, in der zweiten ein Objekt, das du nicht beschreiben darfst.

  6. #21
    bis
    bis ist offline Routinier
    registriert
    09-09-2009
    Beiträge
    459

    AW: Erfahrung mit DOMAssistant ?

    Zitat Zitat von ein schlauer Beitrag anzeigen
    ist es aber bei der Anzahl der Elemente die du nennstt, wenn es um Performance geht, sinnvoll mit documentFragement zu arbeiten, was meines Wissens bisher noch kein Frameworks macht.
    Danke für den Link. Werde ich mir heute Abend durchlesen.

    Ansonsten ist dieses Thema im Moment noch nahe Zukunfts-Musik und für mich der nächste oder auch erst übernächste Schritt. Das werde ich sowieso nicht allein implementieren, sondern nur zusammen mit Javascript- und/oder Ext-Experten. Der Markt dafür und die Anwendung-Möglichkeiten sind gigantisch.

  7. #22
    bis
    bis ist offline Routinier
    registriert
    09-09-2009
    Beiträge
    459

    AW: Erfahrung mit DOMAssistant ?

    Zitat Zitat von ein schlauer Beitrag anzeigen
    Das sind nur zwei vermeintlich ähnliche Sachen. Mit setAttribut bildest du die Eigenschaften des HTML Elementes ab, das zweite ist einer allgemeiner Zugriff auf die Objekteigenschaft.
    Ok, danke für die Erläuterung: das war mir nicht bekannt.

    Ich habe in meinen neuen kleinen Interface-Klassen i. d. R., wo immer es funktioniert, die direkte Variante gewählt, also dies:

    Code:
    domOb.name = "myname"
    Ich sehe in der oberen Variante keine Vorteile. Insofern arbeiten meine kleinen Interface-Klassen fast ausschließlich direkt auf den DOM-Objekten.

  8. #23
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Erfahrung mit DOMAssistant ?

    Es gibt wenige szenarien, wo setAttribute() nötig und/oder im Vorteil ist.

    Z.b. das oben genannte style Objekt, das läßt sich bequemer, z.b. bei der Initialisierung, mit einem string beschreiben, als jede Eigenschaft einzeln (wobei es da aber auch die Eigenschaft .cssText gibt). Oder aber, wenn du tatsächlich mit HTML Attributen arbeiten willst, um z.b. einen tag zu markieren:<tag myAttribute="wert"> - auf myAttribute kannst du nur über getAttribute() zugreifen. Das ist zwar dann ungültiges HTML, funktioniert aber einwandfrei und hat an sich auch keine Nachteile.

  9. #24
    bis
    bis ist offline Routinier
    registriert
    09-09-2009
    Beiträge
    459

    AW: Erfahrung mit DOMAssistant ?

    Der Unterschied beim Bilden von Objekten (hier: Area) zwischen HTML und direkten DOM-Objekten hat mich interessiert. Ich habe daher das Beispiel von kkapsner abgewandelt und dabei festgestellt:

    DOM-Objekte werden durch direkte DOM-Befehle etwa um den Faktor fünf schneller gebildet als über HTML.

    Hier dieentsprechend modifizierten Funktionen:
    Code:
    function createAreaInner(coords){
    	document.getElementById("test").innerHTML = '<map>' +
    		'<area shape="poly" coords="' + coords + '" href="#" alt="">' +
    		'</map>';
    function createAreaDOM(coords){
    //Map hier nicht nötig für Performance-Test
    		var domArea = document.createElement("area");
    		domArea.shape		= "poly";
    		domArea.coords		= coords;
    		domArea.href		= "#";
    		domArea.alt			= "";
    }
    /*Bei 10.0000 recs:
         html   DOM
    IE7 4609 / 969 = Faktor 4,7
    FF  2442 / 481 = Faktor 5
    */
    
    window.onload = function(){
    	var rec = 10000;
    	var t = new Date();
    	for (var i = 0; i < rec; i++){
    		createAreaInner("48,311,105,248,96,210,75,205,38,234,8,310");
    	}
    	var createTime = (new Date() - t)/rec;
    	var createTimeAbs = (new Date() - t);
    
    	var t = new Date();
    	for (var i = 0; i < rec; i++){
    		createAreaDOM("48,311,105,248,96,210,75,205,38,234,8,310");
    	}
    	var changeTime = (new Date() - t)/rec;
    	var changeTimeAbs = (new Date() - t);
    
    	alert("new inner: " + createTime + " ms /  " + createTimeAbs + "\n" + 
    		"new DOM: " + changeTime + " ms / " + changeTimeAbs );
    }

  10. #25
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Erfahrung mit DOMAssistant ?

    Naja, so vergleichen kannst du es nicht, da vermutlich bei der innerHTML Funktion, das erzeugte Element dem Dokument hinzugefügt wird und das kostet, daher der Hinwies auf documentFragement.

    (Es sei denn das Element 'test' ist nicht teil des Dokumentes)

  11. #26
    bis
    bis ist offline Routinier
    registriert
    09-09-2009
    Beiträge
    459

    AW: Erfahrung mit DOMAssistant ?

    Nach diesem Test verstehe ich die obige Aussage von @hesst überhaupt nicht mehr, nach der innerHtml schneller sein sollte als ein direktes bilden von DOM-Objekten. Für eine Erläuterung wäre ich dankbar.

    Vielleicht ist auch ein gravierender logischer Fehler in meinem Beispiel?

    Andererseits muß HTML vom Browser jedoch geparst werden und parsen ist grundsätzlich und überall eine relativ langsame Angelegenheit.

  12. #27
    bis
    bis ist offline Routinier
    registriert
    09-09-2009
    Beiträge
    459

    AW: Erfahrung mit DOMAssistant ?

    Zitat Zitat von ein schlauer Beitrag anzeigen
    Naja, so vergleichen kannst du es nicht, da vermutlich bei der innerHTML Funktion, das erzeugte Element dem Dokument hinzugefügt wird und das kostet, daher der Hinwies auf documentFragement
    Wenn man direkte DOM-Funktionen zum Bilden von DOM-Objekten mit anderer Vorgehensweise über HTML vergleichen will, dann gibt es doch wohl höchstens noch langsamere Methoden als innerHtml?!

    Denn ich habe mehrfach im Netz gelesen, daß innerHtml die schnellste Variante sein soll, einem Objekt HTML hinzuzufügen (abgesehen von direkten DOM-Funktionen).

  13. #28
    bis
    bis ist offline Routinier
    registriert
    09-09-2009
    Beiträge
    459

    AW: Erfahrung mit DOMAssistant ?

    Also nochmal ganz herzlichen Dank für den Link: der Inhalt ist absolut heiß!

    War neugierig und hab schon mal reingelesen!

    In dem dort beschriebenen Konzept sehe ich gravierende Vorteile für meine neue Produkt-Idee und partiell auch für mein derzeitiges Projekt. Bei der neuen Produkt-Idee ist nämlich meiner Einschätzung nach die Schnelligkeit der Browser-Applikation für den Benutzer ein ganz entscheidendes Argument.

  14. #29
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.667

    AW: Erfahrung mit DOMAssistant ?

    Zitat Zitat von ein schlauer Beitrag anzeigen
    ist es aber bei der Anzahl der Elemente die du nennstt, wenn es um Performance geht, sinnvoll mit documentFragement zu arbeiten, was meines Wissens bisher noch kein Frameworks macht.
    ich habe da mal innerHTML mit in den Test aufgenommen (zeiten in ms bei 1014 div's und den elementen aus dem link vom schlauen)

    IE 6.0 FF 3.5.7 Opera 10.10
    über innerHTML: 1766 836 704
    über documentFragement 4026 745 1422
    über eigenes document: 53875 962 7516

    EDIT2: wenn ich zwischendurch die div's wieder leere, sehen die ergebnisse etwas anders aus

    IE 6.0 FF 3.5.7 Opera 10.10
    über innerHTML: 1766 534 719
    über documentFragement 1797 470 672
    über eigenes document: 15453 647 4078



    EDIT:

    wer will, hier mal der Test
    Angehängte Dateien Angehängte Dateien
    • Dateityp: zip xxx.zip (680 Bytes, 4x aufgerufen)
    Geändert von tsseh (29-01-2010 um 15:06 Uhr)

  15. #30
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.667

    AW: Erfahrung mit DOMAssistant ?

    Zitat Zitat von ein schlauer Beitrag anzeigen
    Naja, so vergleichen kannst du es nicht, da vermutlich bei der innerHTML Funktion, das erzeugte Element dem Dokument hinzugefügt wird und das kostet, daher der Hinwies auf documentFragement.
    na innerHTML ist ja im prinzip genauso wie der weg über documentFragement.
    nach jedem hinzugefügten neuen element berechnen die browser (auch wenn nicht gerendert wird) das layout in der einen oder anderen weise neu durch.
    durch das einfügen in ein documentFragement fällt das weg und nur wenn ich das documentFragement ins document einfüge wird einmal berechnet.
    mit innerhtml ist es das selbe. einmal wird dem browser das html übergeben, was er dann einfügt und einmalig neu durchrechnet. nur bei innerhtml fällt zusätzlich noch die anzahl der methodenaufrufe zw. browser und script geringer aus. auch dürfte der weg über strings (html-files) optimierter sein als der über dom.

    EDIT: ach so, jetzt nachdem ich mir das bsp. von bis angesehen habe verstehe ich erst mal was du eigentlich meinst. ich bin ursprünglich davon ausgegangen, das du meintest innerhtml fügt stets jedes element einzeln in den dom tree ein.
    Geändert von tsseh (29-01-2010 um 16:06 Uhr)

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Ähnliche Themen

  1. Suche PSPad-User mit Erfahrung
    Von MützeXXL im Forum Allgemeines
    Antworten: 0
    Letzter Beitrag: 27-01-2009, 18:42
  2. Antworten: 0
    Letzter Beitrag: 08-05-2008, 15:35
  3. Erfahrung mit Installern? Mitstreiter gesucht!
    Von cybdr im Forum Smalltalk
    Antworten: 1
    Letzter Beitrag: 26-06-2007, 15:26
  4. [MySQL]Hat jemand erfahrung.....
    Von style-guide! im Forum Linux und Co
    Antworten: 1
    Letzter Beitrag: 23-10-2002, 04:13
  5. Erfahrung mit phpBB2?
    Von butch im Forum Allgemeines
    Antworten: 15
    Letzter Beitrag: 17-06-2002, 17:32

Lesezeichen

Berechtigungen

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