Оптимизация статического php сайта - PullRequest
1 голос
/ 07 октября 2009

я делаю "статичный" php сайт в этом стиле

<?php include "header.php" ?>
<?php include "left.php" ?>
<?php include "photos.php" ?>

В "photos.php" у меня есть 3 тяжелых файла javascript из лайтбокса, и я подумал, что было бы хорошо включить файлы javascript только в этот "photos.php", а не в "header.php". Но javascript должен быть только в заголовке html-тегов. У вас есть подход лучше или у меня все хорошо?

Большое спасибо

Ответы [ 4 ]

5 голосов
/ 07 октября 2009

Лучше всего, когда у вас в голове есть весь javascript. И вы можете без особого труда. Как сказал Доминик Роджер, возможно, нет ничего страшного в том, чтобы включать файлы js на каждую страницу, потому что они должны быть кэшированы.

Я склонен создавать файлы классов шаблонов страниц с большим количеством переменных для такого рода вещей. Более простая вещь, более подходящая к тому, что вы уже делаете, - установить переменную перед тем, как включить файл заголовка, затем получить доступ к этой переменной в файле заголовка и, если необходимо, добавить js.

<?php 
    $includePhotoJavascript = true;
    include "header.php";
?>

В заголовочном файле:

 if(isset($includePhotoJavascript) and $includePhotoJavascript == true)
 {
    // add the javascript
 }
2 голосов
/ 07 октября 2009

JavaScript должен быть не только в заголовке HTML-тега. На самом деле желательно поместить в конец файла HTML , потому что они мешают загрузке остальной части файла 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" 

?>

0 голосов
/ 10 октября 2009

большое спасибо за ваши идеи. Я планирую сделать домашнюю страницу (index.php) максимально легкой. Так я буду загружать JavaScript (lightbox.js) только в photos.php и попытаться сделать LAZY LOADING на этот lightbox.js, поэтому, когда «первый раз» посетитель Файл javascript photos.php будет в кеше. и все это в фоновом режиме. Я думаю, что то же самое делает Facebook. Смотри сюда Оптимизация Facebook

0 голосов
/ 07 октября 2009

Если вы идете по этому маршруту, вы можете попробовать установить переменную, прежде чем включать header.php, которая хранит информацию о том, нужны ли эти файлы JavaScript. Это может не быть необходимым, чтобы потеть слишком сильно, хотя, если пользователи, как правило, останавливаются на вашем сайте, они будут загружать эти файлы один раз, а не снова, так как, надеюсь, ваш сервер вернет 304 Not-Modified ответ, и они будут обслуживаться из кэша вашего браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...