请教一个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>
我运行过,除了会卡一下,没觉得有什么不对啊,求高手指点
展开
 我来答
ward502
2011-10-09 · TA获得超过1185个赞
知道大有可为答主
回答量:794
采纳率:0%
帮助的人:1360万
展开全部
代码正确。会卡是正常,你这里循环了 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>
bnx1976
2011-10-09 · TA获得超过161个赞
知道小有建树答主
回答量:359
采纳率:0%
帮助的人:310万
展开全部
学习
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式