Estoy tratando de insertar un fragmento de HTML en un div. Quiero ver si la forma simple de JavaScript es más rápida que usar jQuery. Desafortunadamente, olvidé cómo hacerlo a la "antigua" forma. :PAGS
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);
}
¿Qué estoy haciendo mal aquí chicos?
editar :
Alguien preguntó cuál es más rápido, jquery o js simple, así que escribí una prueba:
http://jsperf.com/html-insertion-js-vs-jquery
plain js es un 10% más rápido
javascript
mkoryak
fuente
fuente
Respuestas:
Creo que esto es lo que quieres:
Tenga en cuenta que innerHTML no es accesible para todos los tipos de etiquetas cuando se usa IE. (elementos de la tabla por ejemplo)
fuente
El uso de JQuery se encargaría de esa inconsistencia del navegador. Con la biblioteca jquery incluida en su proyecto, simplemente escriba:
También puede considerar usar:
Esto agregará su galería como el último elemento en el div seleccionado. O:
Esto lo agregará como el primer elemento en el div seleccionado.
Consulte los documentos de JQuery para estas funciones:
fuente
Estoy usando "+" (más) para insertar div en html:
document.getElementById('idParent').innerHTML += '<div id="idChild"> content html </div>';
Espero que esto ayude.
fuente
Como alternativa, puede usar insertAdjectedHTML , sin embargo, profundizo y hago algunas pruebas de rendimiento (viernes de 2019.09.13) MacOs High Sierra 10.13.6 en Chrome 76.0.3809 (64 bits), Safari 12.1.2 (13604.5.6), Firefox 69.0.0 (64 bits)). La prueba F es solo para referencia, está fuera del alcance de la pregunta porque necesitamos insertar html dinámicamente, pero en F lo hago a mano (de forma estática), teóricamente (hasta donde yo sé) este debería ser el forma más rápida de insertar nuevos elementos html.
RESUMEN
innerHTML =
(no confundir con+=
) es la más rápida (Safari 48k operaciones por segundo, Firefox 43k op / seg, Chrome 23k op / seg) La A es ~ 31% más lenta que la solución ideal F solo Chrome pero en Safari y Firefox es más rápido ( !)innerHTML +=...
es más lenta en todos los navegadores (Chrome 95 op / sec, Firefox 88 op / sec, Sfari 84 op / sec)Más información acerca de por qué
innerHTML =
es mucho más rápido queinnerHTML +=
está aquí . Puede realizar la prueba en su máquina / navegador AQUÍMostrar fragmento de código
fuente
Y muchas líneas pueden verse así. El html aquí es solo una muestra.
fuente