$(' ', {идентификатор: 'бла'}) вместо $(';


Есть ли разница в скорости между:

$('<div>', {id: 'bla', click: func, css: { opacity:0.5 } }

И делать все это встроенным?

$('<div id="bla" style="opacity:0.5"></div>').click(func);

Что делает jQuery внутренне для второго примера? Просто позвони .innerHTML или он пытается разобрать его, а затем сделать это точно так же, как в первом примере?

2 2

2 ответа:

Когда мы передаем разметку html в качестве входных данных в $ (), он использует документ.createDocumentFragment создает элементы на лету, а затем использует свойство childnodes для извлечения фактических элементов и выполняет необходимую операцию.

Лучший способ решить, лучше ли один фрагмент, чем другой, - это проверить их самостоятельно.

Вы можете использовать jsPerf.com чтобы проверить ваш код.

Оказывается, вторая версия быстрее в Firefox, и они примерно такие же в Chrome.

Http://jsperf.com/test-jquery-element-creator