ハイチャートのプラグインを使用してグラフを表示しています。 IE10(/ IE9)との互換性の分析私は重大なパフォーマンス上の問題に直面しています。Highcharts performance lag互換モードのIE10(以下)
私の分析は、IE10(またはIE9、同じ問題)に設定された互換モードでIE11を使用するWindows 10で行われます。それは、互換モード+ウィンドウ10の組み合わせによって引き起こされる可能性があります。ユーザーがプレーンIE10またはIE9(互換性モードではない)を使用しているときに、同じ問題かどうかを知りたいだけです。私はいくつかのマシンでそれをテストしました。私は下のリンク(デプロイ)と同じ問題に直面していますが、仮想マシン上でコードをローカルに実行しています。
私はできるだけそれを取り除いた。 状況:X個のdivコンテナのセットを持ち、それぞれにハイチャートを付けます。この場合、15のグラフ。 問題:時間あたりのランタイムは、になり、ランタイムが大幅に増加します。
例:[link to example page]。私は単純なhtmlページを作成しました.15のdivコンテナとボタンがあります。ボタンのOnClickは、各divコンテナにハイチャートを追加するだけで、divコンテナごとにランタイムを追跡します。合計ランタイムを追跡します。すべての追跡ランタイムが印刷されます。ページをロードする際に、jquery($('#btn').trigger("click");
)を使用して、ボタンをクリックしてもトリガーされます。
JS fiddleの例でも同じコードを使用します。互換モードを使用して同じ問題を再現することはできません。
誰かが私を助けることができますか?このパフォーマンスリークの原因は何ですか?互換モードの問題か、それともIE10/IE9でも悪いですか?
問題例は:クロム、FirefoxやIE11でそれを実行して、それは約0.2〜0.4秒を取るスムーズ。 IE10またはIE9(Windows 10を使用)に設定された互換モードでIEで実行している間は、初めてページを読み込んでいる間はかなり高速です。約0.6秒(以下を参照)。各グラフにはほぼ同じ時間がかかります。ボタンを使用して再描画を実行すると、パフォーマンスラグの構築が開始され、合計時間は最大15〜20秒(グラフあたり2秒以上)になります。各グラフには時間がかかります。ボタンを押すたびに、パフォーマンスが悪化します。 IE10に設定互換性で
Intial負荷:
[DrawGraph 0] Execution time: 79
[DrawGraph 1] Execution time: 47
[DrawGraph 2] Execution time: 43
[DrawGraph 3] Execution time: 40
[DrawGraph 4] Execution time: 41
[DrawGraph 5] Execution time: 39
[DrawGraph 6] Execution time: 40
[DrawGraph 7] Execution time: 42
[DrawGraph 8] Execution time: 40
[DrawGraph 9] Execution time: 39
[DrawGraph 10] Execution time: 41
[DrawGraph 11] Execution time: 37
[DrawGraph 12] Execution time: 37
[DrawGraph 13] Execution time: 39
[DrawGraph 14] Execution time: 42
[DrawAllGraphs] Execution time: 654
例最初のボタンのクリック:
[DrawGraph 0] Execution time: 321
[DrawGraph 1] Execution time: 474
[DrawGraph 2] Execution time: 541
[DrawGraph 3] Execution time: 758
[DrawGraph 4] Execution time: 926
[DrawGraph 5] Execution time: 1001
[DrawGraph 6] Execution time: 1374
[DrawGraph 7] Execution time: 1384
[DrawGraph 8] Execution time: 1548
[DrawGraph 9] Execution time: 1687
[DrawGraph 10] Execution time: 1857
[DrawGraph 11] Execution time: 2010
[DrawGraph 12] Execution time: 2184
[DrawGraph 13] Execution time: 2275
[DrawGraph 14] Execution time: 2532
[DrawAllGraphs] Execution time: 20896
素晴らしい!私はすでにエミュレーションモードでIE11でレンダリングしたことが原因であると、少なくとも推測していました。お疲れ様でした!質問:JQuery関数の内部にコードを置くことについて。この種のコード(ハイチャートを引き起こす)が通常のjavascript関数の中にうまくいけばうまくいくと思いますか? (もちろん、これは単なる抽出例です) – FBE
@FBE DOMがロードされていることを確認する必要があります。 jQueryを使用したくない場合は、まずJSファイルをロードしてからJSコードをロードしてください。 [別のオプションは、jqueryなしでドキュメント対応の同等物を使用することです。](http://stackoverflow.com/questions/799981/document-ready-equivalent-without-jquery) –