Estou tentando inserir um pedaço de HTML em um div. Eu quero ver se a maneira simples de JavaScript é mais rápida do que usar jQuery. Infelizmente, esqueci como fazer da maneira 'antiga'. : 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);
}
o que estou fazendo de errado aqui, pessoal?
editar :
Alguém perguntou o que é mais rápido, jquery ou plain js, então escrevi um teste:
http://jsperf.com/html-insertion-js-vs-jquery
plain js é 10% mais rápido
javascript
mkoryak
fonte
fonte
Respostas:
Eu acho que é isso que você quer:
Lembre-se de que innerHTML não é acessível para todos os tipos de tags ao usar o IE. (elementos da tabela, por exemplo)
fonte
Usar JQuery cuidaria dessa inconsistência do navegador. Com a biblioteca jquery incluída em seu projeto, basta escrever:
Você também pode considerar o uso de:
Isso adicionará sua galeria como o último item no div selecionado. Ou:
Isso o adicionará como o primeiro item no div selecionado.
Consulte os documentos JQuery para essas funções:
fonte
Estou usando "+" (mais) para inserir div em html:
document.getElementById('idParent').innerHTML += '<div id="idChild"> content html </div>';
Espero que esta ajuda.
fonte
Como alternativa, você pode usar insertAdjacentHTML - no entanto, eu procuro e faço alguns testes de desempenho - (2019.09.13 sexta-feira) MacOs High Sierra 10.13.6 no Chrome 76.0.3809 (64 bits), Safari 12.1.2 (13604.5.6), Firefox 69.0.0 (64 bits)). O teste F é apenas para referência - está fora do escopo da questão porque precisamos inserir html dinamicamente - mas em F eu faço isso 'manualmente' (de forma estática) - teoricamente (até onde eu sei) este deve ser o maneira mais rápida de inserir novos elementos html.
RESUMO
innerHTML =
(não confunda com+=
) é mais rápido (Safari 48k operações por segundo, Firefox 43k op / seg, Chrome 23k op / seg) O A é ~ 31% mais lento do que a solução ideal F apenas cromo, mas no safari e firefox é mais rápido ( !)innerHTML +=...
é mais lento em todos os navegadores (Chrome 95 op / seg, Firefox 88 op / seg, Sfari 84 op / seg)Mais informações sobre porque
innerHTML =
é muito mais rápido do queinnerHTML +=
é aqui . Você pode realizar o teste em sua máquina / navegador AQUIExibir trecho de código
fonte
E muitas linhas podem ser assim. O html aqui é apenas uma amostra.
fonte