Internet中的JavaScript性能糟糕透了。那里没有新闻。然而,有一些技巧和技巧来加快它的速度。例如,有一个三 零件 系列。尽管如此,我还是发现自己无法从中榨取体面的表现。也许你们中的一些人知道还能做些什么,这样才能更快些?
我想做的是在Javascript中从头开始创建一个中等大小的表。比方说,300行,每个单元10个。在我的电脑上大约需要5-6秒才能做到这一点。好吧,当然,这是一个有5年历史的钻井平台,但还是太多了。这是我的虚拟代码:
<html>
<body>
<script type="text/javascript">
function MakeTable(parent)
{
var i, j;
var table = document.createElement('table');
var insertRow = table.insertRow;
for ( i = 0; i < 300; i++ )
{
var row = insertRow(-1);
for ( j = 0; j < 10; j++ )
{
var cell = row.insertCell(-1);
cell.innerHTML = i + ' - ' + j;
}
}
parent.appendChild(table);
}
</script>
<div onclick="MakeTable(this);">Click Me!</div>
</body>
</html>补充道: Hmm,显然字符串连接(与array.join)是唯一的方法。当然,很难过。希望用“合适的”道姆的方式来做。:)
发布于 2009-04-03 19:01:31
IE性能问题的主要原因之一是DOM操作。您希望尽可能高效地执行DOM操作。这可以包括,取决于您的情况(基准!):
发布于 2009-04-03 18:54:46
您可以尝试“Duff‘s Device”:通过多次重复代码来展开循环:
for (var i = 0; i < count / 4; i++) {
doSomething();
doSomething();
doSomething();
doSomething();
}显然,当除以4时,剩下的部分就剩下了,原来的Duff设备有一种巧妙的方法,可以使用一个开关语句与循环混合,跳到循环的中间。Javascript不支持这一点,但是您可以手动处理其余的行。此外,数字4是随机的,数字本身可以通过性能测试得到。
https://stackoverflow.com/questions/715158
复制相似问题