Более быстрая альтернатива функции jQuery .html?

StackOverflow https://stackoverflow.com/questions/1533720

  •  20-09-2019
  •  | 
  •  

Вопрос

Мне было интересно, есть ли альтернатива функции 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, но даст вам общее представление.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top