Код JavaScript работает 3-4 секунды и отключает браузер во время этого

Мне просто интересно, почему мой код занимает так много времени с Internet Explorer 11. У меня есть страница PHP, которая вызывает функцию. Эта функция возвращает очень длинную строку. Строка на самом деле является кодом JavaScript, который имеет 400 строк.

Давайте предположим, что возвращаемая строка выглядит так:

<script>
  document.getElementById('pka1').innerHTML = 'gddgdgd gsdg gdsgs';
  document.getElementById('pka2').innerHTML = 'gg gdsgdsggg gsg';
  document.getElementById('pka3').innerHTML = 'fdfd ffdsf dfss ff';
  ...
  document.getElementById('pka398').innerHTML = 'hfhhfd hdhfh fhdfd';
  document.getElementById('pka399').innerHTML = 'ggjggfgjgh h ffhfh';
  document.getElementById('pka400').innerHTML = 'fssfs ffsafsa eefg';
</script>

Когда эта строка была возвращена, я использую jQuery для запуска кода. Возвращенная строка сохраняется в переменной с именем as data, Итак, я запускаю следующую команду:

$('#pka').html(data);

После этого Internet Explorer и другие браузеры будут запускать предыдущий код JavaScript, который состоит из 400 строк и изменяет код HTML на 400 делений.

Mozilla Firefox делает это очень быстро, но Internet Explorer тратит слишком много времени - даже 3-4 секунды. Во время работы скрипта веб-страница отключена (я не знаю почему), и я не могу нажимать гиперссылки во время работы скрипта. При использовании Firefox это занимает 0,5 секунды, но IE работает очень медленно.

Как я мог ускорить процесс и сделать так, чтобы страница не была отключена, когда браузер запускает код JavaScript из div, id которого pka?

1 ответ

Во время выполнения сценария веб-страница отключена (я не знаю почему), и я не могу нажимать гиперссылки.

Просто потому, что это так... Модель выполнения сценария Java заставляет функцию или блок кода выполняться до того, как она сможет обрабатывать другие...

Так что, если есть длинный, взаимодействие с пользователем будет заблокировано..

Как я мог ускорить процесс

Ну, вы должны переосмыслить около 400 делений.. это слишком много. Также попробуйте разделить изменения на функции, так как каждая функция обрабатывается отдельно. это сделает его менее медленным.

Я не уверен в использовании веб-работников для манипулирования домом, если это выгодно или даже возможно.

Другие вопросы по тегам