JavaScript代码运行3-4秒并在此期间禁用浏览器

时间:2017-03-12 21:44:56

标签: javascript php jquery html internet-explorer

我只是想知道为什么我的代码使用Internet Explorer 11需要这么长时间。我有一个调用函数的PHP页面。该函数返回一个非常长的字符串。该字符串实际上是包含400行的JavaScript代码。

让我们假设返回的字符串是这样的:

<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来运行代码。返回的字符串存储在名为data的变量中。所以,我运行以下命令:

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

之后,Internet Explorer和其他浏览器将运行包含400行的先前JavaScript代码,并修改400 div的HTML代码。

Mozilla Firefox的速度非常快,但Internet Explorer花费的时间太多 - 甚至3-4秒。当脚本运行时,网页被禁用(我不知道为什么),并且在脚本运行时我无法单击超链接。使用Firefox时,这需要0.5秒,但IE非常慢。

当浏览器从id为pka的div运行JavaScript代码时,如何加快进程并使页面不被禁用?

1 个答案:

答案 0 :(得分:0)

  

当脚本运行时,网页被禁用(我不知道为什么),我无法点击超链接。

仅仅因为它是如何工作的.Java脚本执行模型使一个函数或代码块运行完成才能处理其他函数。

因此,如果有一个很长的用户交互,将阻止用户交互..

  

我怎样才能加快这个过程

嗯,你必须重新考虑400个div ...这太过分了。 还尝试将更改分成函数,因为每个函数都是单独处理的。它会使它不那么迟钝。

我不确定如何使用网络工作人员操作dom,如果它有用甚至是可能的话。