5

JSの重いアプリケーションがあり、IEでゆっくりと実行されます。私はIEの最適化に約1週間を費やそうとしています。試してみるべきことについていくつか指示があります。どのように私はIEのために最適化できますか?

私は便利思われる、このスレッドがDripを参照が見つかりました:

IE and Memory accumulation in Javascript

私はだけでなく、そのI建築のベストプラクティス「ではなく$ .eachのループに使用する」、などのヒントを探しています使用していない可能性があります。私が使用している

図書館:

私はすでにやっているもの:

  • Array.join()対文字列連結

任意の提案を使用して、一般的に参照したDOM要素

  • 建物のHTMLのための代わりに$ .each
  • キャッシュjQueryのコンテキストのループのために使用して?

    ありがとうございます!

  • +1

    * "Array.join()を使用したHTMLの構築と文字列の連結" *これまでに見たほとんどすべてのJavaScript実装での良いアイデアです。 –

    +1

    どのバージョンのIEが遅いですか? v8でのjavascriptの実行は、v7よりもかなり高速です。バージョン8はまだFFoxよりも遅いです。 Internet Explorerで壁に当たってしまう前に、できるだけ多くのことを行うことができます。遅すぎる場合は、他の方法で最適化する必要があります。 – slugster

    +0

    IE7とIE8の両方が遅いです(私はIE6を無視しています)。明らかに、IE8が優れています。私は他のどのような方法で最適化しますか?私は物事を遅くするJavaScriptだと思いますが、残念ながら、このアプリはかなりのJSを必要とします。私は、GoogleがJSアプリをどのように稼働させるのか、IEで行うのかについては興味があります。 – marclar

    答えて

    8

    forループに$.each()ループを変更するような些細な改善を行う、あなたのコードを盲目的に行ってはいけないJavaScript Profiler in IE

    +3

    +1 @kaneuniversal:真剣に、最適化する前にプロファイルしてください。 – Aishwar

    +0

    するでしょう、grazie。 – marclar

    5

    を使用します。それは本当に無意味で、いつかあなたはそれを後悔します。 プロファイラを使用してください。なぜなら、あなたの問題のほとんどは、予期せず悪いコードの数が非常に少ないためです。

    dynaTrace ajax editionのようなものは、このような状況で非常に重要です。

    +0

    Mmmm。 。 。私はあなたの大きなポイントが取られているが、私はそのような "些細な"変更を後悔することはないと思う。しかし、あなたが何かを知っている場合、私はIE固有のボトルネックについて不思議です。そして、それは途中で開発者が引き起こした*ボトルネックを確実に探していると言いました。 – marclar

    +0

    少なくともいくつかのことをやって、貴重な「良いコード」を取り除くことができます。 '$ .each()'で書かれたループは、ページの読み込み時に一度実行され、5つのものを繰り返し処理することで、何かを遅くすることはありません。不必要に高価なjQueryルックアップを何度も繰り返し実行するコードを探します。 – Pointy

    2

    IE6/7で "ワンページ"アプリの場合は、DOM操作を最小化します。むしろ、ループ内の何百もの小さな変更より1つの大きな置き換えを行います。

    +0

    はい - これを行う。ありがとう、Heikki。 – marclar

    関連する問題