2009-05-14 11 views
0

(PHPベースの)ウェブページに複数のJavaScriptファイルを含めることをお勧めしますか?ウェブページ内にJavaScriptを含める

jQueryを使用するウェブサイトと、特定のページに最大約10個のプラグインがあります。私は開発者としての私の人生を簡単にし、それらがユーザーに最も良く提供されることを保証するために、これらのファイルをすべて含めることをお勧めします。

理想的には、各ページごとに必要なプラグインを呼び出すために使用できるPHPハンドラファイルを作成するのが最も簡単な方法だと思って、document.write()を使用して 'include'個々のプラグインに複数のdocument.writeと

<script src="handler.php?jquery,plugin1,plugin2,plugin3,plugin4"></script> 

かもしれない、出力のJavascript()さん:そうのようなページ上の各プラグインJSファイル、。

しかし、一部のブラウザではクエリ文字列を含むアイテムのキャッシュを無視するため、ブラウザキャッシュに問題が生じる可能性があります。

これは問題ありませんか?それとも簡単な方法がありますか?

答えて

1

ジョエリー、

ブラウザはquestionmarksに問題のキャッシュのURLのを持っていません。 おそらく別のjsファイルを含むjsファイルを含めないほうがよいでしょう。 含まれるはずのすべてのjsファイルを管理するスクリプトをすでに作成している場合は、それらのスクリプトタグをすべてそこに出力してください。

+0

ありがとう、私はそれらを管理するためにPHPの使用に固執します。 –

+0

少し古いかもしれませんが、以下を参照してください:http://thinkvitamin.com/features/webapps/serving-javascript-fast/ "この時点では、単に質問を追加するのではなく、文字列をリソースの最後に/css/main.css?v=4 HTTPキャッシング仕様の文字によれば、ユーザエージェントは決してURLをクエリ文字列でキャッシュしてはいけませんInternet ExplorerとFirefoxはこれを無視しますがOperaとSafariはすべてのユーザーエージェントがリソースをキャッシュできることを確認するために、URLからクエリ文字列を削除する必要があります。 –

2

あなたはすなわち、Google AJAX APIに興味がある可能性が:

google.load("jquery", "1.3.2"); 
google.load("jqueryui", "1.7.1"); 
google.load("prototype", "1.6.0.3"); 
+0

そのDFAのおかげで、私はすでにメインのjQueryのファイルをロードするために、GoogleのCDNを使用しない - それはちょうど私がそれをロードするために必要なすべてのくそプラグインだ - もちろん、必ずしもすべてのプラグインは、すべてのページのために必要とされているので、私が必要とするものをすぐにロードできることは不可欠です。 私がコードにしようとしているのは、私が思っているクリーンなフリークというコードを作成しようとしていると思うので、PHP関数を使って標準のスクリプトタグを使ってプラグインを書き出してください。すべて賢明で、1つのスクリプトタグで複数のファイルを読み込んでみてください。 –

1

理由だけではなく、自分の<script>タグと個別の各ファイルを含んでいませんか?すべてが個別にキャッシュされ、すべてがうまくいく。それは、最初のページの読み込みで多くのHTTP要求に過ぎません。毎回「インクルードファイル」を動的に構築することは、パフォーマンスにとっておそらくそれほど優れていないでしょう。

スクリプトの組み合わせは大きく異なりますか?本当にHTTPリクエストを減らしたい場合に、同じ10個のファイルを常に含んでいる場合は、すべてを1つの長いファイルにまとめてください。

+0

これは大きく異なる - 一部のページはプラグインを使用せず、他のページは10まで使用する。 私は、必要なJavaScriptプラグインのスクリプトタグを出力するためにPHP関数を使用することに固執するかもしれないと思う。 'コードをシンプルに保つために努力している'と促す。ありがとう。 –

+0

javascriptファイルを組み合わせてHTTPリクエストを最小化することは、よく受け入れられています。 http://developer.yahoo.com/performance/rules.html –

0

ファイルを個別にインクルードすることを嫌う人は、おそらくプラグイン名のリストを指定してスクリプトタグを生成するPHP関数を書くことができます。

+0

そしてもう一度感謝します - PHPはjavascriptファイルなどからのjavascriptを含めることよりも賢明な選択と思われます –

0
function loadScripts(funcs){ 
    //funcs being an array list of paths to the scripts. 
    var temp; 

    //lets get a reference to the head tag 
    var h = document.getElementsByTagName('head')[0]; 
    for(var i=0; i < funcs.length; i++){ 
     temp = document.createElement('script'); 
     temp.setAttribute('src', funcs[i]); 
     temp.setAttribute('type', 'text/javascript'); 
     h.appendChild(temp); 
    } 
} 
関連する問題