下面这段脚本在其他浏览器上运行性能都很不错,唯独在IE下运行性能很差,如何优化?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
<style type="text/css">
td{width:10px;height:15px;border-color:#ccd4e4;}
</style>
</head>
<body>
<div id="board" style="border: outset 5px #6688ff;width:600px;">
<script type="text/javascript">
var tmp = "<table id=grid width=600 height=600 border=1 cellpadding=0 style='border-collapse: collapse;font-size:4px;'>";
for (var i = 0; i < 40; i++) {
tmp+="<tr>";
for (var j = 0; j < 40; j++) {
tmp+="<td></td>";
}
tmp += "</tr>";
}
tmp += "</table>";
document.write(tmp);
var grid = document.getElementById("grid");
grid.onselectstart=grid.ondrag = function() { return false; };
var mdown = false;
grid.onmousedown = function(e) {
mdown = true;
};
grid.onmouseup = function(e) {
mdown = false;
};
grid.onmousemove = function(e) {
if (!e) e = window.event;
var tag = e.srcElement || e.target;
if (mdown) {
if (e.ctrlKey) {
tag.style.backgroundColor = "";
}
else{
tag.style.backgroundColor = "gray";
}
}
};
</script>
</div>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
<style type="text/css">
td{width:10px;height:15px;border-color:#ccd4e4;}
</style>
</head>
<body>
<div id="board" style="border: outset 5px #6688ff;width:600px;">
<script type="text/javascript">
var tmp = "<table id=grid width=600 height=600 border=1 cellpadding=0 style='border-collapse: collapse;font-size:4px;'>";
for (var i = 0; i < 40; i++) {
tmp+="<tr>";
for (var j = 0; j < 40; j++) {
tmp+="<td></td>";
}
tmp += "</tr>";
}
tmp += "</table>";
document.write(tmp);
var grid = document.getElementById("grid");
grid.onselectstart=grid.ondrag = function() { return false; };
var mdown = false;
grid.onmousedown = function(e) {
mdown = true;
};
grid.onmouseup = function(e) {
mdown = false;
};
grid.onmousemove = function(e) {
if (!e) e = window.event;
var tag = e.srcElement || e.target;
if (mdown) {
if (e.ctrlKey) {
tag.style.backgroundColor = "";
}
else{
tag.style.backgroundColor = "gray";
}
}
};
</script>
</div>
</body>
</html>
2. 你这个表格在没有按下鼠标的时候也在监听onmousemove事件。可以上去先不加onmousemove,onmousedown之后加上监听,onmouseup移除监听。
var tmp = "<table id=grid width=600 height=600 border=1 cellpadding=0 style='border-collapse: collapse;font-size:4px;'>";
for (var i = 0; i < 40; i++) {
tmp+="<tr>";
for (var j = 0; j < 40; j++) {
tmp+="<td></td>";
}
tmp += "</tr>";
}
tmp += "</table>";
document.write(tmp);用数组的push、join var tmp = [];
tmp.push("<table id=grid width=600 height=600 border=1 cellpadding=0 style='border-collapse: collapse;font-size:4px;'>");
for (var i = 0; i < 40; i++) {
tmp.push("<tr>");
for (var j = 0; j < 40; j++) {
tmp.push("<td></td>");
}
tmp.push("</tr>");
}
tmp.push("</table>");
document.write(tmp.join(''));