2016-09-05 9 views
1

私は大きなjavascriptプロジェクトに取り組んでいます。私のindex.htmlで私はたくさんのjavascriptファイルを読み込み、フレームワーク(それはcreatejsに基づいています)は約30です。私のビルドスクリプトが実行された後、これらのjavascriptファイルはすべて1つに連結され、縮小されました。しかし、iPad 3のSafariではフレームレートが10に低下しました(iPad 4と同様の動作)。私は縮小せずに連結を行いましたが、それでも10のfpsしかありませんでした。別のテストでは、all.jsを手動で3つの別々のファイルに分割し、fpsを15に増やしました。javascript連結ファイルが別のファイルよりも実行時間が遅い

ここには何が起こっていますか?私は連結することでローディング時間が短くなり、HTTP要求は少なくなりますが、ランタイムが遅くなることはありません。これは期待されたのでしょうか?私は何か他のことをすることができますか、私は1つのファイルに連結を停止する必要がありますか?

+0

はどんな大きさこれらのファイルのサイズ? 10Kb、100Kb、1Mb? –

+0

縮小されたjavascriptファイルは4MB未満です。 – harrysjoerd

答えて

1

おそらくSafariは非常に大きなファイルを処理しないと思います。ファイル全体を最初にメモリに読み込んで処理する可能性があります。しかし、毎回拡大する必要がある小さなバッファから始めると、メモリ割り当ての遅延が現れることになります。

この場合、どうすればよいですか?より短いファイル配布に戻るよりも、再利用可能になるよりも、私はまだ別のチャンスを考えています:

何について圧縮について 4Mbファイルですか?圧縮された状態(gzipなど)でサーバーエンドポイントをプログラムすることができれば、確かにサイズを10%-20%に減らすことができます(テキストファイルは簡単に高い比率で圧縮されるため)。

(エヘン...私は、単一の大きなファイルとのより良いパフォーマンスを期待していた認めざるを得ない - 。あなたがやったようにしかし、テストの前に、1は...伝えることはできません)

関連する問題