jqueryトラバーサルを使用する場合とページに余分なフラット コンテンツを追加する場合の速度/効率に関する質問:
各行の最初のセルにテキストが含まれ、次にそのテキストの時間の値が含まれる一連のデータを含むテーブルがあります。Highchartsを使用して、ユーザーが各行の値のグラフを表示できるようにします。各行には、モーダル ポップオーバー内でグラフを起動するためのリンクがあります。このテーブルには、数十から数百の行と最大 20 の列が含まれる場合があります。
テーブルは次のようになります。
<table>
<thead>
<tr>
<th>Graph</th><th>Location</th><th>Jan</th><th>Feb</th><th>Mar</th><th>Apr</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#" class="view-chart">View</a></td><td>Paris</td><td>14</td><td>22</td><td>18</td><td>16</td>
</tr>
<tr>
<td><a href="#" class="view-chart">View</a></td><td>London</td><td>32</td><td>24</td><td>22</td><td>27</td>
</tr>
....
場所の名前と月ごとの値を取得して折れ線グラフを作成するには、ユーザーがクリックしたときに jquery を使用して値を取得し、.view-chart
Highcharts で必要な形式に変換します。次のようなものを使用します。
$('.view-chart').click(function() {
var series = { data: [] };
var graphTitle = $(this).parent().next().text();
var tds = $(this).parent().next().nextAll();
$.each(tds, function(index, item) {
series.data.push(parseFloat(item.innerHTML));
});
});
または、すべての値を含むある種の隠し要素を作成し、クリックしてそれらを取得することもできます。
<div style="display: none">
<div id="paris">14,22,18,16</div>
<div id="london">32,24,22,27</div>
</div>
だから私の質問は、この目的のためにどのアプローチがより速く/より効率的ですか? すべての関連データを使いやすい形式で含むフラット コードをページ自体に追加する必要がありますか? それとも、ページを短くして、クリック時にjqueryに解析させる方が良いですか?
どちらでも問題なく動作すると思いますが、テーブルが数千行または数百列に成長した場合はどうなるでしょうか?