近日有一个项目使用DWR来做使用定时器来定时刷新数据生成表格实际使用时发现DWRUtiladdRow在生成*左右的表格时需要大概秒左右并且在生成时页面操作被阻塞无法进行数据录入等操作这样的效果客户肯定无法接受于是苦想其他方法 在网上查了一下资料终于找到解决方法就是使用一个div来充当表格使用innerHTML属性把要生成的表格以HTML的形式拼出来然后赋给div 的innerHTML如下 <div id=tab></div> 大致js如下 //使用array来收集字符串比使用 str+=html的方式要快许多 var rtn = new Array(); //生成表头 rtnpush(<table><tr><td>姓名</td><td>性别</td></tr>) //循环生成表格主体 for(var i=;i<datalength;i++){ rtnpush(<tr><td>); rtnpush(data[i]name); rtnpush(</td><td>); rtnpush(data[i]sex); rtnpush(</td></tr>) } //表格结束 rtnpush(</table>); //输出表格 $(tab)innerHTML=rtnjoin(); 这个方式有两个特点一是避免使用DWRUtiladdRow添加表格来提高速度二是使用Array来搜集字符串提高速度这个方法在其他的情况下也可以使用凡是使用循环来搜集字符串的都可以用这个方式来提高速度 |