近日有一個項目使用DWR來做
使用定時器來定時刷新數據
生成表格
實際使用時發現
DWRUtil
addRow在生成
*
左右的表格時需要大概
秒左右
並且在生成時頁面操作被阻塞
無法進行數據錄入等操作
這樣的效果客戶肯定無法接受
於是苦想其他方法
在網上查了一下資料
終於找到解決方法
就是使用一個div來充當表格
使用innerHTML屬性
把要生成的表格以HTML的形式拼出來
然後賦給div 的innerHTML
如下
<div id=
tab
></div>
大致js如下
//使用array來收集字符串比使用 str+=
html
的方式要快許多
var rtn = new Array();
//生成表頭
rtn
push(
<table><tr><td>姓名</td><td>性別</td></tr>
)
//循環生成表格主體
for(var i=
;i<data
length;i++){
rtn
push(
<tr><td>
);
rtn
push(data[i]
name);
rtn
push(
</td><td>
);
rtn
push(data[i]
sex);
rtn
push(
</td></tr>
)
}
//表格結束
rtn
push(
</table>
);
//輸出表格
$(
tab
)
innerHTML=rtn
join(
);
這個方式有兩個特點
一是避免使用DWRUtil
addRow添加表格來提高速度
二是使用Array來搜集字符串
提高速度
這個方法在其他的情況下也可以使用
凡是使用循環來搜集字符串的
都可以用這個方式來提高速度
From:http://tw.wingwit.com/Article/program/net/201311/12421.html