Более быстрая альтернатива функции JQuery .html? - PullRequest
0 голосов
/ 07 октября 2009

Мне было интересно, есть ли альтернатива функции jquery .html (переменная)? Кажется, что это довольно медленно, а также зависает при вставке HTML в DOM.

Я попытался использовать innerHtml, и это прекрасно работает, очень быстро. Но по какой-то причине, когда у меня есть какой-либо jquery или MS Ajax в вставленном коде, эти сценарии работают ТОЛЬКО в FF.

Я пытаюсь вставить около 2000 строк кода.

Ответы [ 3 ]

3 голосов
/ 07 октября 2009

Проблема в том, что код jquery или ms ajax (javascript), который вы вставляете на страницу, не оценивается. метод .html в jquery делает это за вас, но если вы хотите использовать .innerHtml, вы должны оценить его вручную, используя функцию eval ():

eval(«javascript code here»);

Итак, выполните следующие действия: вставьте html с помощью innerHtml, а затем оцените только часть javascript с помощью функции eval.

0 голосов
/ 08 октября 2009

Я только что прочитал этот ответ и в комментариях была ссылка об использовании фрагментов документа DOM и о том, насколько быстро он сравнивается с "обычным" методом ... проверьте это из. На самом деле он не сравнивает тесты с jQuery, но дает общее представление.

0 голосов
/ 07 октября 2009

Было бы здорово, если бы вы более подробно указали о своей проблеме. Вообще говоря, нет необходимости делать 2000 обновлений .html (), вам нужно объединить их с более крупными вызовами .html (), потому что после каждого .html () весь DOM перестраивается, что вызывает замедление.

...