1

IE10/11 にはいくつかのパフォーマンスの問題があります。次の plunker は、カスタム要素でテーブルの行を繰り返しているときのパフォーマンスの低下の一部を説明しています。

プランカーの例

code

このプランカーの例では、テーブル全体をレンダリングするためにクロムで合計 68 ミリ秒を取得します。IE11 では 280 ミリ秒になり、行ごとのレンダリング速度が 100% 向上します。Chrome は 1 ミリ秒あたり最大 3 行を処理しますが、IE は 2 ミリ秒ごとに 1 行を処理します。

この plunkr は、アプリケーションの基本モデルです。私たちのアプリケーションでは、かなり重い次のテンプレートを繰り返します。これには、ユーザーの設定と権限レベルに応じたスタイルの計算と表示/非表示のバインディングが含まれます。

スウェーデン語なので文字は気にしないでください。 例

2 行目 (拡張情報) は if.bound であるため、最初は描画されません。

このアプリケーションで、テンプレートの 100 行を含むビューをレンダリングすると、chrome はテーブル全体を 587 ミリ秒でレンダリングします。IE11 は 3779ms でそれを行います。Edge は 1283ms、Firefox は 909ms です。

IE11 では各行に約 30 ミリ秒かかりますが、

aurelia-template を使用すると IE11 のパフォーマンスが大幅に低下する理由はありますか? IE のレンダリング速度を改善するにはどうすればよいですか? バインディングを oneTime に設定しようとしましたが、あまり効果がありませんでした。繰り返しやIEでうまく機能しないカスタム要素で避けるべきことはありますか? テンプレートがかなり大きいため、再利用性とコード管理のためにカスタム要素が必要です。

4

2 に答える 2

2

aurelia チーム https://github.com/aurelia/polyfills/issues/39と github プロジェクトhttps://github.com/4nderss/aurelia-performance-testに問題を投稿して、私の問題を再現しました。

Aurelia チームは問題をクローズしたため、現時点では IE11 の修正は行われていない可能性があります。

編集: aurelia チームが問題を発見し、現在は修正されています

于 2016-11-14T07:32:50.403 に答える
2

Aurelia の最新バージョンを使用していることを確認し、IE または古いバージョンの Edge をサポートする必要がある場合は、Bluebird を使用していることを確認してください。これらの Promise の実装はひどく悪いためです。

Plunkr の index.html を次のように置き換えると:

<!doctype html>
<html>
  <head>
    <title>Aurelia</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="styles.css">
  </head>
  <body aurelia-app>
    <h1>Loading...</h1>

    <script src="//cdn.jsdelivr.net/bluebird/3.4.5/bluebird.min.js"></script>
    <script src="https://jdanyow.github.io/rjs-bundle/node_modules/requirejs/require.js"></script>
    <script src="https://jdanyow.github.io/rjs-bundle/config.js"></script>
    <script src="https://jdanyow.github.io/rjs-bundle/bundles/aurelia.js"></script>
    <script src="https://jdanyow.github.io/rjs-bundle/bundles/babel.js"></script>
    <script>
      require(['aurelia-bootstrapper']);
    </script> 
  </body>
</html> 

次に、デスクトップの最後の行の描画時間は、278 msWindows 10 の IE 11 です。こちらを参照してください: plunkr

于 2016-11-04T22:40:50.847 に答える