Ich versuche, einen Teil von HTML in ein div einzufügen. Ich möchte sehen, ob ein einfacher JavaScript-Weg schneller ist als die Verwendung von jQuery. Leider habe ich vergessen, wie man es auf die "alte" Art macht. : P.
var test2 = function(){
var cb = function(html){
var t1 = document.getElementById("test2");
var d = document.createElement("div");
d.id ="oiio";
d.innerHtml = html;
t1.appendChild(d);
console.timeEnd("load data with javascript");
};
console.time("load data with javascript");
$.get("test1.html", cb);
}
Was mache ich hier falsch, Leute?
Bearbeiten :
Jemand fragte, was schneller ist, jquery oder einfaches js, also schrieb ich einen Test:
http://jsperf.com/html-insertion-js-vs-jquery
plain js ist 10% schneller
javascript
mkoryak
quelle
quelle
Antworten:
Ich denke, das ist was du willst:
Beachten Sie, dass innerHTML bei Verwendung des IE nicht für alle Arten von Tags zugänglich ist. (Tabellenelemente zum Beispiel)
quelle
Die Verwendung von JQuery würde diese Browser-Inkonsistenz beheben. Mit der in Ihrem Projekt enthaltenen jquery-Bibliothek schreiben Sie einfach:
Sie können auch Folgendes in Betracht ziehen:
Dadurch wird Ihre Galerie als letztes Element im ausgewählten Div hinzugefügt. Oder:
Dadurch wird es als erstes Element im ausgewählten Div hinzugefügt.
Informationen zu diesen Funktionen finden Sie in den JQuery-Dokumenten:
quelle
Ich benutze "+" (plus), um div in html einzufügen:
document.getElementById('idParent').innerHTML += '<div id="idChild"> content html </div>';
Ich hoffe das hilft.
quelle
Als Alternative können Sie insertAdjacentHTML verwenden - ich beschäftige mich jedoch mit einigen Leistungstests - (2019.09.13 Freitag) MacOs High Sierra 10.13.6 auf Chrome 76.0.3809 (64-Bit), Safari 12.1.2 (13604.5.6), Firefox 69.0.0 (64-Bit)). Der Test F dient nur als Referenz - er kommt nicht in Frage, da wir dynamisch HTML einfügen müssen - aber in F mache ich es von Hand (auf statische Weise) - theoretisch (soweit ich weiß) sollte dies der sein schnellster Weg, um neue HTML-Elemente einzufügen.
ZUSAMMENFASSUNG
innerHTML =
(nicht zu verwechseln mit+=
) ist am schnellsten (Safari 48.000 Operationen pro Sekunde, Firefox 43.000 op / s, Chrome 23k op / s) Das A ist ~ 31% langsamer als die ideale Lösung F nur Chrom, aber auf Safari und Firefox ist es schneller ( !)innerHTML +=...
ist in allen Browsern am langsamsten (Chrome 95 op / s, Firefox 88 op / s, Sfari 84 op / s).Weitere Informationen darüber , warum
innerHTML =
ist viel schneller alsinnerHTML +=
ist hier . Sie können HIER einen Test auf Ihrem Computer / Browser durchführenCode-Snippet anzeigen
quelle
Und viele Zeilen können so aussehen. Das HTML hier ist nur ein Beispiel.
quelle