请教一个js的问题
请问下面这个程序有什么问题,为什么,以及如果要优化的话怎么做<divid="asd"></div><scripttype="text/javascript">varasd...
请问下面这个程序有什么问题,为什么,以及如果要优化的话怎么做
<div id="asd"></div>
<script type="text/javascript">
var asd=document.getElementById("asd");
var b="";
for(var i=0;i<100000;i++)
{
b+="<p>"+i+"</p>";
}
asd.innerHTML=b;
</script>
我运行过,除了会卡一下,没觉得有什么不对啊,求高手指点 展开
<div id="asd"></div>
<script type="text/javascript">
var asd=document.getElementById("asd");
var b="";
for(var i=0;i<100000;i++)
{
b+="<p>"+i+"</p>";
}
asd.innerHTML=b;
</script>
我运行过,除了会卡一下,没觉得有什么不对啊,求高手指点 展开
2个回答
展开全部
代码正确。会卡是正常,你这里循环了 100000 次 字符串也拼接了 100000次。
对浏览器是一个很大负担。可以优化的就是 字符拼接
<div id="asd"></div>
<script type="text/javascript">
var asd=document.getElementById("asd");
var bstr=[]; //声明数组
for(var i=0;i<100000;i++)
{
bstr.push("<p>"+i+"</p>");//加入数组中 小规模拼接 + 有优势 大规模就数组 快很多
}
asd.innerHTML=bstr.join("");//把 数组 的每个元素转换为字符串 连接符 为 空 插入asd节点
</script>
对浏览器是一个很大负担。可以优化的就是 字符拼接
<div id="asd"></div>
<script type="text/javascript">
var asd=document.getElementById("asd");
var bstr=[]; //声明数组
for(var i=0;i<100000;i++)
{
bstr.push("<p>"+i+"</p>");//加入数组中 小规模拼接 + 有优势 大规模就数组 快很多
}
asd.innerHTML=bstr.join("");//把 数组 的每个元素转换为字符串 连接符 为 空 插入asd节点
</script>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询