プロトタイプからjqueryに切り替えたので、これまで存在したことを知らなかった多くのパフォーマンスの問題が発生しています。
しかし、それは問題ではありません。質問は私が使用しているこの関数についてです:(巨大なWebアプリケーションがあることに注意してください)私はこの関数を使用しています:
<!DOCTYPE html>
<html>
<head>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<div title="jquery ui exists" style="width: 500px; height: 500px; background-color: lightblue" >hover me</div>
<script>
var MyApp ={
loadJsNow: function(libFilename){
//the synchronous call ensures the library is in fact loaded before this
//(which does not work for crossdomain requests, just for docu)
//function returns:
$.ajax({
url: libFilename,
dataType: "script",
type: "GET",
async: false,
cache: true,
complete: function(data){
$("div").tooltip();
}
});
}
}
MyApp.loadJsNow("http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js");
</script>
</body>
</html>
したがって、この関数は、Webページの特定の要素に必要な場合にjsファイルをロードするために使用されます。非常に多くのページがあり、ページがほとんどない場合もあれば、読み込まれる場合もあるため、このアプローチは理にかなっているように見えました。しかし、この関数はオンデマンドで読み込まれ、通常のヘッダーとは異なり、これがそれ自体でパフォーマンスの問題を引き起こすかどうかはわかりません。FF 10では、200〜600ミリ秒かかり ます。こちらをご覧ください
ヘッダーにハードコードされた値を使用した別のアプローチをここで見てください。
ハードコードされたヘッドjsリンク 私は〜100-300ミリ秒を取得しています
オンデマンドローディングのすべてのサポートを削除しますか?同様の結果が得られますか?
編集私はこの質問を相互参照したいと/firefoxがオンデマンドのjavascriptロードのキャッシングを正しく処理していないように見えるためです。時々それは機能します、そして同じページでそれは再び機能しません。