1

このページのソースhttp://kingston.talking-newspapers.co.uk/を見ると、上部に大量のインラインJavaScriptが表示されます。

私は本当にこれらの余分なものすべてを私のページソースに浮かび上がらせたくありません、私はむしろそれをスクリプトタグに入れたいです、そしてそれから私はそれとあらゆる種類を縮小することができます。

これをphpファイルと呼ぶ場合、これは理論的には機能するはずです。代わりに、jsファイル拡張子をphpで終了し、ヘッダーに次のように記述します。

header("Content-type:application/x-javascript");

しかし...javascript内でプレイリストを生成するために使用される多くのphp変数は、メインのindex.phpファイルの先頭に設定されており、このphpで生成されたjsプレイリストファイルをこのように呼び出すと、完全に評価されるようです。別々に、それはエラーでいっぱいです。

私が考えることができる唯一の方法は、ページにファイルを書き込んですぐに読み込むことです。もう1つは、プレイリストが頻繁かつ動的に変更される可能性があるため、キャッシュしないように縮小する必要があると思います。それ?

4

2 に答える 2

1

このチュートリアルに従ってソリューションを作成しました。このチュートリアルでは、インライン生成スクリプトをファイルにリダイレクトし、すぐにそのファイルを読み込みます。

http://my.opera.com/zomg/blog/2007/10/03/how-to-easy-redirect-php-output-to-a-file

したがって、私のページは次のようになります。

<?php
require("./filewriter.php");
$obfw = new OB_FileWriter('jplay_gen_playlist.js');
$obfw->start(); 
require($includesdir . "jplayerscript.php");
$obfw->end(); 
?>

<script type="text/javascript" src="jplay_gen_playlist.js"></script>

出来上がり!すべてが適切に外部化され、縮小化、キャッシュなどが可能です。

于 2010-06-16T16:53:51.107 に答える
0

2 つの方法でそれを行うことができます。最初に変数をインラインで設定し、次にスクリプトを含めます。

<script type="text/javascript">
  var myPlayList = [
    {
       name: "Introduction and guidance on usage",
       mp3:"http://www.talking-newspapers.co.uk/find/soundfiles/TnHomePageIntro.mp3",
       ogg:"http://www.talking-newspapers.co.uk/find/soundfiles/kingstonkt9.ogg"
    }
    ...
 </script>
 <script type="text/javascript" src="myinclude.js"></script>

もう 1 つは、インクルードされた .js ファイルを、ページの上部にインクルードし、インライン JavaScript から呼び出す関数の単純なライブラリにすることです。

<script type="text/javascript" src="myinclude.js"></script>

....

<script type="text/javascript">
$(function() {
    var myPlayList = [ ... ];
    startPlaylist(myPlayList);
});
</script>

個人的には2番目の方法を選択します。スクリプトを動的に生成する必要はありません (私が見る限り、プレイリストを除いてすべてハードコーディングできますよね?) スクリプトに渡す必要がある他のものは、引き続き渡すことができますstartPlaylist()とにかくあなたのメソッド呼び出しによって。

于 2010-06-16T01:12:53.493 に答える