我在js的一个循环中为了在页面上不同地方打出不同的图片,用来一下的语句
div.innerHTML = "<img src='images/bubble/bubble.gif'>";
但是当我循环比较大的时候,大概超过100浏览器就扛不住了
请问怎么优化一下

解决方案 »

  1.   

    var i;
    var len=1000;
    for(i=0;i<len;i++){
        i = i+1 ;
        div[i].innerHTML = "<img src='images/bubble/bubble.gif'>";
    }// 据研究这样的写法  执行效率比较高
      

  2.   

    其实浏览器的加载问题一般都是对图片的加载,加载图片的时候是一帧一帧来绘制的,所以图片越大速度越慢,根本的做法是把图片的变小,当然,代码来说的话要简化js代码,去掉不必要的循环,去掉onload之类的
      

  3.   

    测试了一下,没有发现楼主到问题。不知道lz的浏览器怎么"扛不住"
    整个过程实际是创建元素,并加载图片的过程,应该没有太大的消耗的。 function loadImag() {
                for (var i = 0; i < 200; i++) {
                    var div = document.createElement("div");
                    div.innerHTML = "<img src='http://news.aibo123.com/Article/UploadFiles/201004/20100430141537212.jpg'>";
                    document.body.appendChild(div);
                }
            }
            window.onload = loadImag;
      

  4.   

    要看你服务器端使用的什么技术了?asp.net还是jsp或php
      

  5.   

    这话有点绝对哦,现在客户端电脑性能很高的,可以利用的哦,当然也可以使用JavaScript框架,我觉得那样更好点
      

  6.   

    我遇到过这样的问题 
    最好的办法是
    在执行之前先把你的DIV隐藏了。最后一次性的显示。
    比如
    div.style.display = "none";
    for(){...}
    div.style.display = "block";
      

  7.   

    大图片一多,load得肯定就慢了,所以一般网站图列表都用的缩略图,而且应该是分批动态load图片,意思是你拉动scroll的时候才加载余下图片。
      

  8.   

    使用数组:var iay = new Array();
    for (var i = 0; i < 100; i++) {
       iay.push("<img src='images/bubble/bubble.gif'>");
    }
    div.innerHTML = iay.join("");