2017-09-04 13 views
0

が表示されます。<table>の行数は数えずに1つの列には、<tr> ... <td><a href='site.com'> site </a></td> ... </tr>というリンクが含まれています。私のウェブアプリケーションは、急速に変化するコンテンツの特徴です。例えば、100ミリメートルごとにリフレッシュされ、サーバーから新しい情報が得られます(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] 
     } 
    } 
関連する問題