2012-04-12 3 views
0

私のサイトの1つでは、Javascriptコードを含むためにPHP 'foreach'を使用する必要があります。このコードには、foreachループ内で変更されるPHP $変数が含まれています。多くのJavaScript関数(PHPを含む)をPHPページに組み込む最も効率的な方法は何ですか?

foreach ($a as $b) { 
    include("javascript.php"); 
} 

javascript.phpは、このようなコードが含まれています

<script> 
    $(".<?php echo $somevariable?>").something; 
</script> 

私の質問は:PHP変数が含まれているJavaScriptをロードする(もしあれば)最も効率的な方法は何ですか?

大規模なJavaScriptコードをページに書くのではなく、.jsスクリプトで呼び出すことをお勧めしますが、明らかに.jsファイルにはPHPを使用できません。

あなたの洞察に感謝します。

+2

.js、または任意のファイルにphpを入れることができます。サーバーにファイルをphpとして解析する必要があります –

+0

ありがとう、これを行うには何を検索しますか?それは.jsファイルまたは.phpファイルに入れることができる単純なコード行ですか? –

+2

外部JSファイルが動的に生成され、各要求に応じて変更される場合、*以上のオーバーヘッドがあります。 JSをインクルードされたファイルに移動する主なパフォーマンス上の利点は、複数の要求にまたがってキャッシュできることです。重要なのは、コードを安全かつ保守可能にすることです。パフォーマンスの問題が発生するまでは、あなたのページにJSを含めるのではなく、何かを行うための最も効率的な方法について心配するべきではありません。 – meagar

答えて

1

は、私が使用するアプローチです:

は、$ somevariableを含むJavaScript変数を使用してHTMLファイルを作成します。ページが作成されると

<html> 
<head> 
    <script src="my_global.js"></script> 
</head> 
<body> 
    Foo 
<script> 
    var somevariable = "<?php echo $somevariable ?>"; 
</script> 
</body> 
</html> 

をその後のJavascriptファイルへのアクセスにこの値を持っている(I 「)この例では)(jQueryの.readyを用いたM:

$(document).ready(function() { 
    alert(somevariable); 
}); 

ここでは、アクションである:http://jsfiddle.net/2zeQM/

これにより、Javascriptファイルをキャッシュすることができます(静的で動的ではありません)。動的データは、ユーザーが要求しているページにロードされます。

使用する変数名が他のJavascriptコードで再利用されないように注意する必要があります。問題を避けるために、変数名の前に接頭辞を付けます。たとえば、「somevariable」と呼ぶのではなく、「xy_somevariable」と呼ぶかもしれません。

1

あなたが追加することができます:あなたの.phpファイルの先頭に

header("Content-type: text/javascript"); 

をし、それが.jsファイルとしてレンダリングされます。ここで

+4

これは必須ではありません。 ''でファイルをインクルードするだけで十分です。 – meagar

+1

本当ですか?うわー、それはかなり素晴らしいです。 –

関連する問題