私はこの質問が何度か聞かれたことを知っていますが、私の問題に対する適切な解決策を見つけることができないようです。
私は、MVC(Model-View-Controller)の原則に従うPHPフレームワークであるCodeIgniterを使用しています。
私は、 headタグに含まれるすべてのページに必要なjQueryやその他の汎用ライブラリのような多くのjavascriptファイルを持っています。また、スクリプトブロックのビューに直接埋め込まれているビュー固有のJavaScriptもあります。
ビューcustomerInfo.phpの例:
<script type="text/javascript">
// some javascript here for customerInfo view
// I MUST be able to use PHP variables in this script block ex:
var customerName = "<?php echo $customerName; ?>";
</script>
<p class="someClass">Hello <?=$customerName?>, may the lord provide you with bananas</p>
私のウェブサイトのレイアウトは次のとおりです。
<html>
<head>
<script src="http://coolStorybro.com/jquery.js" type="text/javascript"></script>
<script src="http://coolStorybro.com/commonStuff.js" type="text/javascript"></script>
</head>
<body>
<div class="header">some header stuff</div>
<div class="pageContent">
<?php echo $view; ?> // In this case, $view will hold the view customerInfo
</div>
</body>
</html>
私の目標は、すべてのJavaScriptを同じ場所に配置して、それを縮小し、最終的には読み込みの最適化のためにページの下部に配置できるようにすることです。
ビュー固有のJavaScriptをcustomerInfo.jsという個別のファイルに保存し、 headタグにロードできることは承知していますが、ビューごとに個別のJavaScriptファイルを作成するには多すぎると感じており、できません。それらの中でPHPを使用するために、私はしなければなりません。
だから私は皆さんに尋ねています、私の問題の解決策はありますか、それとも私のページをスクリプトブロックでクラスター化する運命にありますか?
お時間をいただきありがとうございます。
編集:
(すべてのビューの)ビュー固有のJavaScriptを単一のファイルに入れて、それをモジュールに分割し、目的のビューの特定のモジュールのみをロードする方法はありますか?
viewsJS.jsがすべてのビュー固有のJavaScriptを保持しているとしましょう。
module ("customerInfo",
$(".someClass").html("Bla bla bla");
);
module ("invoiceInfo",
// Some code to be executed when the invoiceInfo module is loaded
);
各モジュール(ビュー)のJavaScriptが定義されると、それらを対応するビューにロードする方法があります。問題は、モジュールを「ロード」するためのスクリプトブロックをビューに含めることができないため、無知です。