2009-10-07 2 views
1

je fais un site web php « statique » dans ce styleL'optimisation d'un site web php statique

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

Dans « photos.php » j'ai 3 fichiers javascript lourds de la lightbox et je pensais que ce pourrait être un bon pour inclure les fichiers javascript uniquement dans ce fichier "photos.php" et non dans le fichier "header.php". Mais javascript censé être seulement dans les balises html tête. Avez-vous une meilleure approche ou la mienne va bien?

merci beaucoup

Répondre

0

Si vous allez dans cette voie, vous pourriez essayer de définir une variable avant d'inclure header.php qui stocke ou non les fichiers JavaScript sont nécessaires. Il peut ne pas être nécessaire de trop transpirer, si les utilisateurs ont tendance à rester sur votre site Web, ils vont chercher ces fichiers une fois, puis pas encore, car nous espérons que votre serveur va retourner une réponse non-304, et ils Seront servis du cache de votre navigateur.

5

Il est préférable d'avoir tous les javascript dans la tête quand vous le pouvez. Et vous pouvez sans trop de difficulté. Comme l'a dit Dominic Rodger, il n'est probablement pas très important d'inclure les fichiers js sur chaque page car ils devraient être mis en cache.

J'ai tendance à créer des fichiers de classes de modèles de pages avec beaucoup de variables pour ce genre de choses. Une chose plus simple à faire qui est plus en ligne avec ce que vous faites déjà est de définir une variable avant d'inclure le fichier d'en-tête, puis accédez à cette variable dans le fichier d'en-tête et ajoutez le js si approprié.

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

Dans le fichier d'en-tête:

if(isset($includePhotoJavascript) and $includePhotoJavascript == true) 
{ 
    // add the javascript 
} 
2

JavaScript ne doit pas seulement être dans la balise HTML tête. Il est en fait advisable to put it at the end of the HTML file, car ils arrêtent le reste du fichier HTML à partir du chargement.

Qu'est-ce que vous pourriez faire dans le fichier header.php, est quelque chose comme ceci:

<html> 
<head> 
<title><?php print $title; ?></title> 
<?php 
foreach($javascript as $src){ 
?> 
    <script type="text/javascript" src="<?php print $src; ?>"></script> 
<?php 
} 
?> 
</head> 

ensuite le fichier que vous avez posté ressemblerait à ceci:

<?php 
$title = "Photo album"; 
$javascript = array("jsfile1.js", "file2.js"); 
include "header.php" 
include "left.php" 
include "photos.php" 

>

+1

Je fais cela, sauf que je n'ai pas le fichier wrapper supplémentaire, y compris 'photos.php', je voudrais juste mettre les variables title/javascript et inclut dans photos.php lui-même, et faire que le la page chargée – DisgruntledGoat

0

merci beaucoup pour vos idées. Je prévois de rendre la page d'accueil (index.php) aussi légère que possible. Donc je vais charger javascript (lightbox.js) seulement dans photos.php et essayer de faire un LAZY LOADING à ce lightbox.js ainsi quand visiteur "première fois" aller à photos.php fichier javascript sera dans le cache. et tout cela en arrière-plan. Je pense que c'est le même Facebook fait. Regardez ici Optimizing Facebook