页面加载期间执行的Javascript行数
我有一个用例,需要获取加载网页时执行的Javascript行的总数 我面临的问题是,当某个JS执行次数超过(我认为IE是500万次)并且页面被挂起时,浏览器会发出警报 我使用了IE开发者工具栏中提供的探查器,但它给出了调用的JS函数的总数,而不是执行的总行数 感谢您的帮助 感谢BASH中的:页面加载期间执行的Javascript行数,javascript,internet-explorer,profiler,Javascript,Internet Explorer,Profiler,我有一个用例,需要获取加载网页时执行的Javascript行的总数 我面临的问题是,当某个JS执行次数超过(我认为IE是500万次)并且页面被挂起时,浏览器会发出警报 我使用了IE开发者工具栏中提供的探查器,但它给出了调用的JS函数的总数,而不是执行的总行数 感谢您的帮助 感谢BASH中的: wc -l file.js 在PHP中: <?php $c=0; $file_handle = fopen("file.js", "r"); while (!feof($file_handle))
wc -l file.js
在PHP中:
<?php
$c=0;
$file_handle = fopen("file.js", "r");
while (!feof($file_handle)) {
$line = fgets($file_handle);
$c++;
}
fclose($file_handle);
print "$c lines.\n";
?>
在Node.js中:
var i, count = 0, js=require('fs').createReadStream('file.js');
js.on('data', function(chunk) {
for (i=0; i < chunk.length; ++i)
if (chunk[i] == 10) count++;
});
js.on('end', function() {
console.log(count);
});
var i,count=0,js=require('fs')。createReadStream('file.js');
js.on('data',函数(块){
对于(i=0;iE->JS文件中函数的区段(最后)行号首先,你应该重新设计你的代码;不将控制权交还给浏览器的500万条语句绝对是一大堆代码,想象一下移动浏览器将如何应对它 确定执行了多少条语句的一种方法是插入代码,为代码中的每条语句添加一条语句,以计算执行的次数,从而有效地将代码中的语句数量加倍
还有一些代码覆盖工具可以在浏览器中运行,而无需插入代码;谷歌搜索“javascript代码覆盖率”提供了大量可供使用的浏览器扩展,例如。只需将其分割成较小的块,并在超时后调用即可解决IE问题。e、 g
somethingBig();
somethingElseBig();
改为写:
somethingBig();
setTimeout(somethingElseBig);
我非常怀疑这是基于代码行的。当JS引擎花费太多时间而没有将控制权传递回浏览器时,它很可能会触发。
while(true)代码>也会导致页面挂起。。。明白我的意思吗?@ThiefMaster:我也会这么想,但有趣的是,OP似乎是正确的:我能够在我的机器上解决这个问题,通过编辑注册表使行数从500万变为有限,但这对每个使用我的网页的人来说都是不可能的。有没有任何工具可以告诉我行数?你在这里犯了严重的错误。那不行。IE计算执行的语句(而不是代码行),因此循环中的语句在每次迭代中都会被计算,等等。这在他对问题的评论中的mellamokb中有说明。是的,我回答了他们最初的问题,但正确的答案是“重写代码,代码太多了。”