0

ページがすべて HTML で、下部に JS スクリプトがロードされているテーマを購入しました。テーマを変更し、次のような PHP ファイルを作成しました (必要なコンテンツをロードするための php インクルードを含む非常に標準的なものです)。

  • index.php
  • header.php
  • menu.php
  • フッター.php

  • content1.php

  • content2.php
  • content3.php
  • ...

すべてのスクリプトは、まだ最後に footer.php にロードされています。

私の問題は、各コンテンツページで特定のスクリプトが必要であるという事実にあります。たとえば、content1.php には script1.js が必要であり、content2.php には script2.js が必要です...

これは、私がそれを行う適切な方法を理解するのに苦労している場所です:

フッターにすべてのスクリプト (script1.js、script2,js、および script3.js) を読み込むことができるため、どのコンテンツが読み込まれても、必要なスクリプトが読み込まれます。しかし、使用されていないスクリプトをロードしてしまいます。

たとえば、json 配列 (php と mysql クエリを使用して生成される) からテーブルを生成して表示するスクリプトがあります。このテーブルは、content1.php にのみ表示されます。

このスクリプトをフッターにロードしたくありません。必要がない場合でも、ページが表示されるたびに実行されるからです。また、フッターに読み込まれる他のスクリプト (jQuery) が必要なため、content1.php に含めることはできません。php インクルード自体の後。

それは理にかなっていますか ?

4

7 に答える 7

0

必要なファイルをヘッダー ファイル (jquery など) に頻繁にロードして、必要なページの下部にあるオプションのファイルを呼び出して、フッターからすべての呼び出しを削除してください。

于 2013-09-19T12:52:59.770 に答える
0

これをフッターから取り出します:

<script></script>

</body>

</html>

そして、それに応じて各ページに入れます。

于 2013-09-19T13:00:35.500 に答える
0

最も簡単で明白な解決策は、コンテンツ ブロックが開始する前に jQuery をロードすることです。下部にスクリプトを含めることをお勧めしますが、これは基本的なことではありません。JS を結合して圧縮することもお勧めします。これにより、すべてのページに対して 1 つの圧縮された JS を生成できます。

ただし、ドキュメントがレンダリングされた後、AJAX を介してスクリプトをロードすることもできます。http://api.jquery.com/jQuery.getScript/があり 、その時点でどのコンテンツがロードされているかがわかります。

    $(document).ready(function() {
        if ($("#content1").length > 0) { ... }
    });

コードを関数でラップして、jQuery も読み込まれるまで実行を延期することもできます。

于 2013-09-19T13:04:32.287 に答える