2017-09-04 75 views
0

有一個<table>沒有太多的行(數百),該表中的一列包含一個鏈接:<tr> ... <td><a href='site.com'> site </a></td> ... </tr>。我的web應用程序具有快速更改內容的特點 - 例如,每100ms刷新一次 - 從服務器獲取新信息(fetch("server") - >json() - >drawTable())。但通常只有一些內部html的內容發生變化,鏈接通常不會改變。點擊不斷變化的內容

我目前相當天真的解決方案重寫整個表。內容不多,所以我的解決方案速度不夠快。但問題是,點擊鏈接(也不是按鈕)是不可能的,因爲表格幾乎總是在變化。

我有一個想法,只更新實際上改變的單元格。任何其他想法?

謝謝

+1

爲什麼要頻繁更換表格?也許你應該只更新一些列?鏈接是標準的,沒有任何額外事件? –

+1

這是一個反應或mobx的完美用例,因爲它們只會更改*真正需要更改的DOM部分。 – Robert

+0

「是因爲表幾乎總是在變化,所以點擊鏈接(也不是按鈕)是不可能的。」你的意思是因爲你無法快速點擊它?不要經常更新,你會讓用戶頭疼。 – ADyson

回答

0

我實現了我的想法,更新更改的單元格,它運作良好。創建功能update()並保持先前​​更新的陣列:

for (let i = 0 ; i < rows.length ; ++i){ 
     const cells = rows[i].getElementsByTagName("TD") 
     for(let j = 0 ; j < cells.length ; ++j){ 
      if (Arr[i][j] == ArrPrev[i][j]) 
       continue 
      else 
       cells[j].innerHTML = Arr[i][j] 
     } 
    }