15

すべてのモジュールを 1 つのリソースに結合するために、各モジュールを個別のスクリプト タグに書き込み、コードをコメント ブロック (/* */) 内に隠しました。リソースが最初にロードされるとき、コードはコメントアウトされているため解析されません。モジュールをロードするには、対応する script タグの DOM 要素を見つけ、コメント ブロックを取り除き、コードを eval() します。

iPhone 2.2 デバイスでは、ブロック コメント内に保持された 200k の JavaScript により、ページの読み込み中に 240 ミリ秒が追加されましたが、ページの読み込み中に解析された 200k の JavaScript により 2600 ミリ秒が追加されました。ページの読み込み中に 20 万の不要な JavaScript を排除することで、起動時の待ち時間を 10 分の 1 以上短縮できます。

http://googlecode.blogspot.co.uk/2009/09/gmail-for-mobile-html5-series-reducing.html https://developers.google.com/speed/docs/best-practices/mobile

gmail の記事は 3 年以上前のもので、それ以来モバイル パフォーマンスに大きな利点がありました。具体的には、iOS の Nitro や JIT がモバイルに登場するなどです。eval の使用によるパフォーマンスの向上はまだありますか?

4

1 に答える 1

3

JavaScript エンジンが非常に高性能になったため、以前と同じ技術的問題ではありません。むしろ、よりアプリに似ているという点で、他の考慮事項があります。

ここに画像の説明を入力

スレッドを解放するために ajax リクエストに Web ワーカーを使用する、CSS 変換と requestAnimationFrame または asm.js で GPU を利用するなど、アプローチが異なるトリックが現在あります。localStorage/sessionStorage と Application Cache を使用することは、これらの線に沿った別のアプローチであり、多くのクライアント側キャッシュを前もって実際に取得して、コンテンツ JSON / 画像データ URL / ビデオ以外の呼び出しを回避し、メモリにロード/実行することができます。それらのキャッシュから必要です。

言い換えれば、それは別の時間であり、あなたの質問は興味深いものですが、Web アプリのパフォーマンスに実際に違いをもたらす適切な領域に焦点を当てていません。

于 2013-10-30T01:42:39.650 に答える