Highcharts 内
chart: { renderTo: 'container', width: myWidth, height:350, spacingLeft:-65 },
yAxis: [{ // Primary yAxis tickPositions: [145.00, 150.00, 155.00, 160.00, 165.00], max: 163.50, labels: { formatter: function() { //我想在这里对this.value做判断, 设置chart里的width值 return this.value.toFixed(2); }, }],
次の Highcharts マニュアルに移動して、ドキュメントの開発を確認してください サンプルが含まれています
いいえ、
あなたはまだ外で判断しています。
判定後、パラメータを再設定します。
データをロードする前にデータ分析を実行し、myWidth を計算してからチャートを生成します
これは、この種の静的描画の標準的な考え方でもあります。つまり、パフォーマンスはデータのプロセスではなく、データによって決まります。パフォーマンス レンダリングを実行する
データをロードする前にデータ分析を実行し、myWidth を計算してからチャートを生成する
これは、この種の静的描画の標準的な考え方でもあります。つまり、パフォーマンスは次のように決定されます。データ; パフォーマンスを実行するのではなく、レンダリング プロセス中に他のパフォーマンス パラメーターを変更します
これは以前にも実行されましたが、大量のデータがあり、現在のパフォーマンスはあまり良くありません
いいえ。 ,
やはり外側で判断するのです。
判定後、パラメータを再設定します。
データ取得はしましたが、遅いです
7秒というのはチャートの描画時間ですよね? データ処理を行うのは不可能で、7秒かかります
描画時間であれば: 動的変更によりパフォーマンスがさらに低下します。js コードの実行時間が長すぎてブラウザがフリーズしないようにするには、ステップロードなどの処理を実行する方法しかありません
データ処理時間の場合:アルゴリズムのロジックに問題はありません。データ量が多すぎるため、最適化する唯一の方法は、データを段階的にロードすることです
7 秒はチャートの描画時間を指します。 ? データ処理を実行するのは不可能であり、7 秒かかるはずです!
描画時間の場合: 動的変更によりさらにパフォーマンスが低下するため、確実に処理を実行する方法を見つけることができます。 jsコードの実行時間が長すぎてブラウザがフリーズすることはありません
データ処理時間の場合: アルゴリズムのロジックに問題がない場合は、実際にデータ量が多すぎるとしか言えません。最適化とは、データを段階的にロードすることです
IE9 ではまだ非常に高速ですが、IE8 は非常に遅くなります。データチェックが多すぎます。この状況を解決するにはどうすればよいですか?
一般的な最適化アルゴリズムのアイデア: 走査の数を減らします (走査を 1 回だけ実行するようにします)。反復/再帰を使用しません
js の場合、単一であるため、スレッド化されているため、js がロジック内で「スタック」するのを防ぐために、データをセクションに分けてロードできます