Non rechargement d'entete html

Non rechargement d'entete html - HTML/CSS - Programmation

Marsh Posté le 02-01-2006 à 15:13:03    

Voilà l'embryon de mon site :
http://xiiilesite.free.fr/Napoleon/main.php
 
Comme vous le remarquez, quand vous naviguez entre les 3 pages disponibles (page d'accueil, les citations et les discours), l'entete est systématiquement rechargé (l'ensemble titre + menu de navigation).
Or ils sont evidemment fixe, et j'aimerais ne pas avoir à les recharger à chaque fois.
Un collegue m'a dis que je n'ai que 2 solutions :
- utiliser une iframe pas belle pour mon contenu variable de mes pages, dont je modifierais la target quand je voudrais changer de page
- utiliser XMLHttpRequest, mais a priori ca a pas l'air tres simple, et ca change d'un navigateur a l'autre
 
Qu'en pensez vous ?

Reply

Marsh Posté le 02-01-2006 à 15:13:03   

Reply

Marsh Posté le 02-01-2006 à 15:17:08    

pourquoi ne pas recharger l'entête ?

Reply

Marsh Posté le 02-01-2006 à 15:19:30    

un petit "require" ?

Reply

Marsh Posté le 02-01-2006 à 15:24:50    

@ ritzle : parce que c'est tout le temps la même, que donc ca n'est pas tres beau et que ca me prends 0.5sec de rab à chaque construction de page.
 
@Ryoh : je ne sais pas trop comment ca marche, je vais de ce pas me renseigner :)

Reply

Marsh Posté le 02-01-2006 à 15:30:11    

Citation :


Inclusion de fichiers
 
        * require( "fichier.html" ); - insère (de manière inconditionnelle) un fichier dans le texte envoyé au navigateur. Ce fichier peut contenir du code PHP, il sera interprété.
 
if( $resultat == 3 )
{
 require( "fichier.php" );
}
 
          Le fichier fichier.php sera inclus dans tous les cas ; le code qu'il contient sera traité comme faisant partie du script courant.
        * include( "fichier.html" ); - insère un fichier dans le texte envoyé au navigateur. Contrairement à require, cette inclusion est conditionnelle, elle peut dépendre d'un test.
 
if( $resultat == 3 )
{
 include( "fichier.php" );
}
 
          Le fichier fichier.php ne sera inclus que si le test est vrai. La fonction require est moins coûteuse que la fonction include. C'est là son seul avantage.


 
------------------------------------------
 
 
Donc si j'ai bien compris, ca recharge tout de meme la page non ?


Message édité par saternius le 02-01-2006 à 15:35:57
Reply

Marsh Posté le 02-01-2006 à 15:33:14    

Citation :

Pour information, la différence entre include() et require() est que include("file" ); est remplacé par file à chaque fois qu'il est exécuté, alors que require("file" ); n'est remplacé qu'à la première occurence, dès qu'il est parsé (et pas forcément exécuté).


 
----------------------------------------
 
Donc finalement, ca devrait resoudre mon probleme ... on verra ce soir quand je rentrerais du boulot :)


Message édité par saternius le 02-01-2006 à 15:36:33
Reply

Marsh Posté le 02-01-2006 à 15:34:29    

oui, ca la recharge mais une fois que c'est dans le cache le temps de chargement est négligeable

Reply

Marsh Posté le 02-01-2006 à 15:47:31    

ritzle a écrit :

oui, ca la recharge mais une fois que c'est dans le cache le temps de chargement est négligeable


 
Bah justement, pas forcément, sur les IE sur lesquels j'ai testé le cache marche pas mal, mais sous certains firefox (version 1.5 pourtant) ca recharge complètement.
Et de toute facon, meme en cache, on voit tout de meme un petit refresh, que j'aimerais bien degager, étant - malheureusement ? - perfectionniste.
 
 :bounce:

Reply

Marsh Posté le 02-01-2006 à 16:03:33    

Juste pour info :
on peut mettre plusieurs couples <dl> <dt> dans un même <dd>. Ca t'alégera trés trés légérement ton code et surtout ca regroupera ton menu entié dans un seul élément html sans avoir à rajouter un div suplémentaire.
 
Sinon, pour ton menu qui se trouve sur toutes les pages en étant toujours pareil, s'il existe sous forme de simple fichier html, alors ca ne prendra que quelques centiémes de secondes à être inclus dans les autres pages. Si ca prend 0.5 secondes c'est soit que le serveur est saturé soit au niveau du disque soit au niveau processeur/accés mémoire. En tout cas, a par si tu recopies ton fichier dans chaque fichier, tu ne pouras rien trouver de beaucoup plus rapide sans qu'il y ai de défaut génant :
- Une utilisation de javascript pour récupérer le menu dans un fichier à part risque de chercher à le récupérer à chaque fois et empéchera la navigation sans javascript (menu non présent à l'écran)
- une utilisation de javascript pour changer le reste de la page quand on clique sur le menu rendra le référencement des autres pages impossible et la navigation impossible sans javascript
- l'utilisation d'une frame empéchera la navigation si le visiteur arrive directement sur une page en venant d'un moteur de recherche

Reply

Marsh Posté le 02-01-2006 à 16:48:51    

Merci pour ces precisions omega2, et j'ai bien compris que les 2 méthodes que j'avais avancé ne sont pas vraiment satisfaisantes.
 
En fait ce qui prends du temps, ce n'est pas l'affichage du menu mais bien des 2 images du titre. Ca a beau faire 15ko chacun, ca fait 30ko et donc 0.5 sec de telechargement pour une connec 512k, je parle meme pas en 56k.
 
Bien sur il y a le cache, mais j'ai pas l'impression que ca marche partout tres bien (cf moi ^^).
 
Ces mêmes images d'ailleurs mettent un temps faible mais non négligeables à se charger, meme en cache.
 
En ce moment j'utilise un bon vieux 'include("entete.html" )' , le require ne répondrait-il pas à ma requete ?
 
Au pire je laisserais tel quel, mais il me semble bien que ce que je recherche est utilisé sur pas mal de sites...

Reply

Marsh Posté le 02-01-2006 à 16:48:51   

Reply

Marsh Posté le 02-01-2006 à 16:53:42    

Si c'est un probléme de récupération/affichage d'image, je craind qu'il n'y ai pas de solution. En général, les serveurs web indiquent au navigateur que les images n'ont pas à être charger à nouveau avant un certain nombre de jours, et à par si le cache du navigateur est trop plein (le navigateur devra enlever des fichiers pour y mettre les nouveaux fichiers) ou si le navigateur est réglé pour aller récupérer les images à chaque fois, il n'y a pas de raison que le navigateur passe outre cette indication.

Reply

Marsh Posté le 02-01-2006 à 17:13:25    


 
Mon problème semble donc insoluble, je pense essayer de réduire au maximum la taille de ces images, puis de laisser tel quel.
 
En tout cas, merci de votre aide :jap:

Reply

Marsh Posté le 02-01-2006 à 19:23:09    

Ben je vois po trop ce que tu veux faire toua
à partir du moment ou tu rappelle une autre page, même si son entête HTML est la meme, ben cet entete sera rechargé. Si ce sont des images, elles seront prises sur le cache du navigateur.

Reply

Marsh Posté le 02-01-2006 à 19:52:35    

moi je pense que tu peux encore réduire considérablement tes images...
 
donc vois de ce coté....et puis un gars en 56k tant fais il a lhabitude de voir le net au ralentit... :lol:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed