我只是想知道为什么我的代码使用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代码时,如何加快进程并使页面不被禁用?
答案 0 :(得分:0)
当脚本运行时,网页被禁用(我不知道为什么),我无法点击超链接。
仅仅因为它是如何工作的.Java脚本执行模型使一个函数或代码块运行完成才能处理其他函数。
因此,如果有一个很长的用户交互,将阻止用户交互..
我怎样才能加快这个过程
嗯,你必须重新考虑400个div ...这太过分了。 还尝试将更改分成函数,因为每个函数都是单独处理的。它会使它不那么迟钝。
我不确定如何使用网络工作人员操作dom,如果它有用甚至是可能的话。