データバインディングとDOM管理機能を提供するプロジェクト用のライブラリを選択しようとしています。複数のライブラリを比較すると、結局InfernoとSvelteになりました。
Svelteのスクリプト時間の評価が他のライブラリよりも高いことに気付きました(添付の画像を参照してください) 。
サンプルでは、100 x 15のテーブル(合計1500セル)をレンダリングしました。レンダリング時間は数ミリ秒減少しますが、インフェルノのスクリプト実行時間はその半分です。
要素の数に応じて時間が大幅に増加します。15000セルsvelteスクリプトの評価時間は2000ミリ秒ですが、インフェルノは680ミリ秒かかりました。
Svelteコード:
<style>
table,td,tr {
border: 1px solid black;
}
</style>
<script>
import { officedatabase } from '../../../data_generator/sampleGridData/initialloaddata.js';
</script>
<table>
{#each officedatabase as row}
<tr>
{#each row as cell}
<td>{cell}</td>
{/each}
</tr>
{/each}
</table>
インフェルノサンプルコード:
import { Component } from 'inferno';
import { officedatabase } from './initialloaddata.js';
export default class Grid extends Component {
state = {
data: officedatabase
};
render () {
let data = this.state.data,
rows = data.map((row)=> {
return (
<tr class='row'>
{row.map((ele)=>{
return <td style='border: 1px solid black;'>{ele}</td>;
})}
</tr>
);
});
return (
<div>
<table style='border: 1px solid black;'>
{rows}
</table>
</div>
);
}
}
なぜこのスクリプトの評価時間がSvelteで高いのですか?
1
テーブルに小さなビッグデータを入力しているときにも、これに気づきました。
—
Yousuf Iqbal Hashim