我正在以这种风格制作一个“静态”的php网站
<?php include "header.php" ?>
<?php include "left.php" ?>
<?php include "photos.php" ?>
在“photos.php”中,我有来自灯箱的3个重javascript文件,我认为将javascript文件仅包含在此“photos.php”而不是“header.php”中是一件好事。 但javascript应该只在head html标签中。你有更好的方法,或者我的方法很好吗?
非常感谢
答案 0 :(得分:5)
最好尽可能让所有的javascript都在头脑中。你可以毫不费力地完成任务。正如Dominic Rodger所说,在每个页面上包含js文件可能不是什么大问题,因为它们应该被缓存。
我倾向于为这类事情创建包含大量变量的页面模板类文件。更简单的做法是更加内联你已经在做的事情是在包含头文件之前设置一个变量,然后在头文件中访问该变量并在适当的时候添加js。
<?php
$includePhotoJavascript = true;
include "header.php";
?>
在头文件中:
if(isset($includePhotoJavascript) and $includePhotoJavascript == true)
{
// add the javascript
}
答案 1 :(得分:2)
JavaScript不仅必须位于头部HTML标记中。它实际上是advisable to put it at the end of the HTML file,因为它们会阻止HTML文件的其余部分加载。
你在header.php文件中可以做的是这样的:
<html>
<head>
<title><?php print $title; ?></title>
<?php
foreach($javascript as $src){
?>
<script type="text/javascript" src="<?php print $src; ?>"></script>
<?php
}
?>
</head>
然后您发布的文件将如下所示:
<?php
$title = "Photo album";
$javascript = array("jsfile1.js", "file2.js");
include "header.php"
include "left.php"
include "photos.php"
&GT;
答案 2 :(得分:0)
如果您正沿着这条路线走下去,可以尝试设置一个变量,然后再加入header.php
来存储是否需要这些JavaScript文件。但可能可能没有必要过多地冒汗,如果用户倾向于在您的网站上留下他们将获取这些文件一次然后不再获取,因为希望您的服务器将返回304 Not-修改后的响应,它们将从您的浏览器缓存中提供。
答案 3 :(得分:0)
非常感谢你的想法。 我打算让主页(index.php)尽可能轻松。所以 我将仅在photos.php中加载javascript(lightbox.js)并尝试执行此操作 LAZY加载到这个lightbox.js所以当“第一次”访客去 photos.php javascript文件将在缓存中。 以及所有这些在背景中。 我认为和Facebook一样。看这里 Optimizing Facebook