Более быстрая альтернатива функции jQuery .html?
Вопрос
Мне было интересно, есть ли альтернатива функции jquery .html(variable)?Кажется, он работает довольно медленно и зависает при вставке HTML в DOM.
Я попробовал использовать InternalHtml, и это отлично работает, к тому же очень быстро.Но по какой-то причине, когда во вставленном коде есть jquery или MS ajax, эти сценарии работают ТОЛЬКО в FF.
Я пытаюсь вставить около 2000 строк кода.
Решение
Проблема в том, что код jquery или ms ajax (javascript), который вы вставляете на страницу, не оценивается.метод .html в jquery сделает это за вас, но если вы хотите использовать .innerHtml, вам придется оценить его вручную, используя функцию eval():
eval(«javascript code here»);
Итак, шаги таковы: вставьте HTML с помощью InnerHtml, а затем оцените только часть JavaScript с помощью функции eval.
Другие советы
Было бы здорово, если бы вы более подробно рассказали о своей проблеме.Вообще говоря, нет необходимости делать 2000 обновлений .html(), вам нужно объединить их в более крупные вызовы .html(), потому что после каждого .html() весь DOM перестраивается, что приводит к замедлению работы.
я просто читал этот ответ и в комментариях была ссылка на использование Фрагменты DOM-документа и насколько это быстро по сравнению с "обычным" методом...проверьте это.На самом деле он не сравнивает тесты с jQuery, но даст вам общее представление.