私は4つのjavascriptファイル(それぞれが1つのHTMLファイル用)を持っており、3つの関数は4つのファイルすべてで同じです。どういうわけかこれらの3つの関数を別々に含めることができるスムーズな解決策を見つけたいです....js内に.jsを含めることは可能ですか?
5 に答える
複数の
<script>
タグを持つことができます:<script src="lib.js"></script> <script> // do stuff </script>
jQueryを使用できます:
$.getScript("lib.js", function() { // do stuff });
browserify、YUICompressor、GoogleのClosureCompilerなどのプリプロセッサを使用できます。
たとえば、グーグルアナリティクスで機能するように、これを自分で書くことができます。
(function(){
var lastIncludedScript = document.getElementsByTagName('script')[0];
var yourScript = document.createElement('script');
yourScript.type = 'text/javascript';
yourScript.src = 'path/to/script.js';
lastIncludedScript.parentNode.insertBefore(yourScript, lastIncludedScript);
})();
または関数のように:
function includeScript( path ){
var lastIncludedScript = document.getElementsByTagName('script')[0];
var yourScript = document.createElement('script');
yourScript.type = 'text/javascript';
yourScript.src = path;
lastIncludedScript.parentNode.insertBefore(yourScript, lastIncludedScript);
}
利用方法:
includeScript( 'path/to/script.js' );
javascriptファイルを非同期でロードすることについてのこの素晴らしい説明を見ることができます。これで問題が解決する可能性があります。または、他のjavascriptファイル内にjavascriptファイルをロードする方法に関するこのスタックオーバーフローの質問を見てください。
ただし、使用するすべてのものを1つのjavascriptファイルに含め、すべてのサイトに同じファイルをロードすることは、一見の価値があるかもしれません。これにより、すべてのJavaScriptをロードするために1つのhttpリクエストを行うだけで済み、非常に効率的にキャッシュできるため、パフォーマンスが向上します(したがって、後でJavaScriptをロードする必要はありません)。
各htmlファイルに必要な適切なjsファイルを使用してください。それはあなたの問題を解決します。また、一般的な機能を含むものを両方のhtmlファイルに追加できます。これで問題が解決するはずです。
ブラウザに他のJavaScriptのファイルを含めるのは少し遅いです。サーバー側のスクリプトを作成して、関連するすべてのJavaScriptを1つの「ファイル」に結合して縮小し、クライアントに送信します。
ページは、このスクリプトにパラメーターを渡して、含める必要のあるものを選択できます。