我用ajax从server端读一个数组对象,然后遍历这个数组,赋值给页面上的input元素
但是我这个数组很大,有时候有上百个。目前是用一个大循环遍历赋值, 这样页面加载的时候会死很长时间,请问有办法优化吗? 或者至少不要让浏览器死,谢谢

解决方案 »

  1.   

    你返回一个json数据试试呢~··
      

  2.   

    如果你的循环是阶乘类循环或者多重循环还可以优化,
    如果是单重循环,操作又简单就是取出值来,那就不好说了。
    建议楼主在循环里对数据的操作进行优化,或者
    在server端对数组对象进行优化。
      

  3.   

    说点自己的心得
    1. 用异步加载数据, html先显示出 input.然后数据加载好以后添上去,页面不会处于假死.
    2.大数据最好不要动态创建节点然后用dom加载到html里,这样很耗费时间
    3.用stringBuffer代替string的"+"操作,我用这个优化了一个大数据页面,快了5秒..,stringBuffer下面这样定义var StringBuffer=function(){
        this._string=new Array;
    }
    StringBuffer.prototype.append=function(str){
        this._string.push(str);
    };
    StringBuffer.prototype.toString=function(){
        return this._string.join("");
    }
    4.把循环展开(证明过很有用)
    比如var sum=0;
    for(var i=0;i<1000;i++){
        sum+=i;
    }
    //不如下面这种展开的方法快,虽然写法很丑陋for(var i=0;i<1000;i++){
        sum+=i;
        i++;
        sum+=i;
        i++;
        sum+=i;
        i++;
        sum+=i;
        i++;
        sum+=i;
        i++;
        sum+=i;
        i++;
        sum+=i;
        i++;
    }
    5.可以参照Duff装置(去搜索下)对循环的优化6.绝对原创心得..
      

  4.   

    一个页面上同时展示上百个字段信息是很少见的,既然是用的ajax,可以根据需要从server读取需要的数据,这样可以减少数据量;如果真的是需要一次性全部读取出来,4楼说的挺好的
      

  5.   

    说点自己的心得
    1. 用异步加载数据, html先显示出 input.然后数据加载好以后添上去,页面不会处于假死.
    2.大数据最好不要动态创建节点然后用dom加载到html里,这样很耗费时间
    3.用stringBuffer代替string的"+"操作,我用这个优化了一个大数据页面,快了5秒..,stringBuffer下面这样定义
    JScript codevar StringBuffer=function(){this._string=new Array;
    }
    StringBuffer.prototype.append=function(str){this._string.push(str);
    };
    StringBuffer.prototype.toString=function(){returnthis._string.join("");
    }4.把循环展开(证明过很有用)
    比如
    JScript codevar sum=0;for(var i=0;i<1000;i++){
        sum+=i;
    }//不如下面这种展开的方法快,虽然写法很丑陋for(var i=0;i<1000;i++){
        sum+=i;
        i++;
        sum+=i;
        i++;
        sum+=i;
        i++;
        sum+=i;
        i++;
        sum+=i;
        i++;
        sum+=i;
        i++;
        sum+=i;
        i++;
    }5.可以参照Duff装置(去搜索下)对循环的优化6.绝对原创心得..
      

  6.   

    貌似在javascript高级程序设计见过
      

  7.   


    哎,结合自己的心得啊,最近在做一个东西, 从服务器上获得6*192000个数据然后用vml画曲线.那个速度夸张的慢
    于是就优化啊优化
    而且服务器用的是cgi,慢得跟头驴一样,请求一次的时间最初要22秒,然后解析要用10秒,在同时对服务器和客户端都进行优化以后,速度提高了5倍多
      

  8.   

    to 各位老大数据肯定没法优化了,100多条都是必要的
    不是动态增加的 DOM, 是静态页面里的 input项目
    我对js不熟,所以用的jquery来做的
    server给 web browser是用 json方式传递谢谢。。
      

  9.   

    建议楼主看看这个
    http://www.w3cgroup.com/article.asp?id=213
    如何提升JavaScript循环的运行速度 
      

  10.   

    建议使用json 转化后直接对数组循环 这样速度应该快些