可能 ie6 对多核cpu支持不佳,碰到一个情况,ie6使得多个cpu的某个核一直全速运行,致使总的cpu的运行率为:
(100/核的个数)%
而老式单核cpu没有问题。
bug 出现步鄹:
1.全速运行一段代码持续一段时间(不能太短)
2.赋给 绝对定位的一个元素的 innerhtml 为一大串字符。(使浏览器进行大量解析操作)
则可见,ie6 在多核 cpu 中持续使得某核运行,则再付大量字符串给innerHTML ,之后cpu降不下来了
示例图:(4核)
IE6:
Firefox:
示例代码:
<!DOCTYPE html>
<html>
<head>
<title>IE6 : 多核cpu 某个核全速运行问题</title>
<script type="text/javascript">
//<![CDATA[
window.onload=(function() {
document.getElementById('action_a').onclick=function() {
var table="<table>";
tbody="<tbody>";
for(var row=0;row<100;row++) {
var tr="<tr>";
for(var col=0;col<1000;col++) {
var td="<td>";
td+=row+"_"+col+"</td>";
tr+=td;
}
tbody+=tr+"</tr>";
}
table+=tbody+"</tbody>"+"</table>";
//之前cpu的一个单核一直持续运行超过一定时间
alert("大数据量已经生成,将要渲染到绝对定位DIV");
//大数据量
setTimeout(function() {
//下一步将一个大字符串赋给 innerHTML ,
document.getElementById("simpleTest").innerHTML=table;
//table=null;
//即使没有操作了,之后cpu的一个单核仍然全速运行,cpu为 100%/核的个数
//ps:在只有一个核的cpu下没有问题,到这就cpu很低了
},250);
};
});
//]]>
</script>
</head>
<body>
<button id='action_a'> 显示</button>
<div style="position:absolute;left:10px;top:40px;border:1px solid green;display:block;z-index:3;" id="simpleTest">
</div>
</body>
</html>