2013-02-20 36 views
0
  1. 說我有this HTML mockup
  2. 假設我需要定期更新信息(值標題)1秒。應該爲模型中的每個表格完成。我通過JSON格式的websocket獲取數據。

問題是:什麼是更新表中的數據的最佳方式?刪除內容並創建新的DOM元素或搜索DOM元素並更新其值?刪除並創建VS搜索並更新jquery

+0

如同每一場演出問題,這取決於。知道可靠的唯一方法就是[自己嘗試](http://jsperf.com)。 – 2013-02-20 10:55:06

回答

0

我結束了通過jQuery做選擇器訪問。 I updated the HTML mockup,因爲我忘記提及我可以很容易地確定我必須通過類選擇器更新的值。我之前有過這個類選擇器,但之後簡化了模型以在這裏提出一個問題。 A performance test在這裏完成。 雖然this答案不適用於我的情況是完全有效的。

有效代碼更新值是:

$('.values').each(function() { 
    if ($(this).html() != " ") { 
    $(this).text("UP1"); 
    } 
}); 

你也可以縮小的jQuery查找到特定的表(從HTML實體模型示例表):

$('#tableWrap_group_1 .values').each(function() { 
    if ($(this).html() != " ") { 
    $(this).text("UP1"); 
    } 
}); 
0

最快的方法是保持引用DOM元素JS - 與

tableRefs[row][col]=document.createElement('td');

創建每個和保持一個參考吧。然後,只需更新通過

tableRefs[row][col].innerHTML='yourDataHere'; 

我不會擔心性能降低,除非你打算在古/低性能的設備上運行,數據仍然是大約100行。