优化静态PHP网站
我想提出这种风格优化静态PHP网站
<?php include "header.php" ?>
<?php include "left.php" ?>
<?php include "photos.php" ?>
“静态” php网站在“photos.php”我从收藏夹3个JavaScript文件,我想这可能是一个很好的只在这个“photos.php”中包含javascript文件而不在“header.php”中。 但JavaScript应该只在头部html标签中。你有没有更好的方法,或者我的很好?
非常感谢
如果你要沿着这条路,你可以尝试设置一个变量,你包括header.php
存储与否的JavaScript的需要文件之前。它可能可能没有必要过多的汗水,但如果用户倾向于坚持在您的网站上,他们将获取这些文件一次,然后不再,因为希望你的服务器将返回304 Not-Modified响应,他们将从您的浏览器的缓存中提供。
只要有可能,最好让所有的JavaScript都在头上。你可以没有太大的困难。正如Dominic Rodger所说,将js文件包含在每个页面上可能不是什么大问题,因为它们应该被缓存。
我倾向于为这种事情创建大量变量的页面模板类文件。更简单的做法是与你已经做的更直接的联系,就是在包含头文件之前设置一个变量,然后在头文件中访问该变量并在适当的情况下添加js。
<?php
$includePhotoJavascript = true;
include "header.php";
?>
在头文件:
if(isset($includePhotoJavascript) and $includePhotoJavascript == true)
{
// add the javascript
}
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"
>
非常感谢您的想法。 我正在计划使主页(index.php)尽可能轻。所以 我只会在photos.php中加载javascript(lightbox.js),并尝试做一个 LAZY LOADING到这个lightbox.js,所以当“第一次”访问者去 photos.php JavaScript文件将被缓存。 和所有这些在后台。 我认为Facebook是一样的。看这里 Optimizing Facebook
我这样做,除了我没有额外的包装文件,包括'photos.php',我只是把标题/ JavaScript变量,并包括在photos.php本身,并使该已加载的页面。 – DisgruntledGoat 2009-10-07 13:54:32