php IF语句加载/不加载javascript -这是聪明的


php IF statement to load/not load Javascripts - Is this smart?

我不确定这个一般性问题是否被允许在这里,但我还是尝试了一下。我正在创建一个新网站(只是为了好玩和"训练"我的技能)。我在一个点,我有一些行的javascript代码,但代码是不需要在每个页面。

所以我决定将所有的javascript脚本粘贴到一个php文件(javascript.php),并在该文件中我添加了以下几行:

<?php  $site_name = basename($_SERVER['REQUEST_URI'], ".php"); ?>
<?php if ($site_name == "index") { ?>
<script type="text/javascript">
//script 1
</script> 
<?php } elseif ($site_name == "index1") { ?>
<script type="text/javascript">
//script 1
</script> 
<?php } elseif ($site_name == "index2") { ?>
<script type="text/javascript">
//script 2
</script> 
<?php } elseif ($site_name == "index3") { ?>
<script type="text/javascript">
//script 3
</script> 
<?php } ?>


它工作得很好。
但是,作为一个编码新手,我想知道这是否是一个聪明的解决方案?你能告诉我你的意见,为什么这样做是聪明/愚蠢的吗?

如果你必须有单独的Javascript包含,我不会使用If,因为它可以变得相当大,难以管理。你可以使用一个开关(同样的问题,IMO),或者只是把JS放到单独的文件中,并根据$site_name:

http://codepad.org/Ha02Uscr

<?php
$site_name = basename($_SERVER['SCRIPT_NAME'], ".php");
echo "
<script type='"text/javascript'" src='"$site_name.js'"></script>
";
?>

当然,也有其他的方法。您可以考虑使用CodeIgniter、CakePHP或Drupal等框架来管理文件。

我建议将所有内容放在一个javascript标签中,并且(如果javascript文件足够大)将它们移动到单独的文件中,而不是内联。除此之外,我认为这是一个比让浏览器处理它不需要的javascript更好的解决方案。记住,当javascript找不到函数时,你就这样做了;)