2017-04-04 74 views
0

我有一個Web應用程序需要多次重繪DataTable的實例。他們每個人都有非常小的數據源,但當我做一個正常情況下的性能檢查當繪製多個數據表時速度很慢

var table = $("#Table").DataTable({ 
    "data": smallData 
}); 
$("#Table").clear(): 
$("#Table").rows.add(otherSmallData).draw(); 

它已經花了200ms。在我的情況下,更新所有實例需要2秒(2秒鐘瀏覽器凍結)。無論如何要順利進行客戶端?

回答

1

嘗試使用deferRender選項進行延遲渲染以獲得額外的初始化速度。

var table = $("#Table").DataTable({ 
    "data": smallData, 
    "deferRender": true 
}); 
+0

它並沒有真正提高性能,因爲推遲選項是假設爲大數據集我認爲 –

1

您已經使用jQuery創建了對錶的引用,當您使用該引用而不是挖掘到DOM時會發生什麼?像這樣:

var table = $("#Table").DataTable({ 
    "data": smallData 
}); 
table.clear().rows.add(otherSmallData).draw(); 
+0

因爲在實際函數中,有一個if-else檢查。該表只會第一次初始化。 –