Bonjour,

Je crée mon premier site Web (pour la présentation d'une école).

En lisant les conseils (notamment sur Alsacreations), j'ai suivi ce cheminement:

- Je veux une colonne centrale au contenu et à la taille variables entre deux colonnes fixes (menu et news), le tout sous une zone top.

- Je veux éviter les frames afin de voir apparaître l'url des pages du site et favoriser le référencement.

- Je me suis donc tourné vers les CSS, PHP et la fonction include

- Avec cette méthode, toute la page est rechargée à chaque appel du menu ce qui crée un effet visuel désagréable.

- J'ai donc abandonné PHP-include pour xmlhttprequest afin d'injecter le code html dans un div de ma colonne centrale.

- Et là, seule l'url principale du site apparaît dans la barre d'adresse, pas celles des autre pages appelées (ce qui paraît logique vu la technique utilisée)

Est-il possible de combiner CSS sans frames ni iframes, 2 colonnes fixes et une colonne centrale liquide à contenu variable, pas de rechargement systématique de la page et la technologie xmlhttprequest?

jmch
Modifié par jmch (11 Apr 2007 - 20:38)
jmch a écrit :
- Avec cette méthode, toute la page est rechargée à chaque appel du menu ce qui crée un effet visuel désagréable.

Ou alors on peut considérer ça comme un effet visuel qui indique à l'utilisateur qu'il a changé de page et que donc le contenu sera différent ?

Utiliser une solution problématique (notamment en termes d'accessibilité) pour éviter un petit « flash » au moment du changement de page, c'est tout de même excessif, non ?

Surtout que l'effet au rechargement de la page est surtout visible quand, en bon webmaster, on clique rapidement d'une page à l'autre pour voir si tout s'affiche correctement. Un scoop : les visiteurs du site zappent un peu moins rapidement de page en page, et parfois même ils s'arrêtent quelques secondes pour lire le contenu d'une page. Que le changement de page ne passe pas inaperçu ne devrait pas les perturber plus que ça... Smiley rolleyes

jmch a écrit :
Est-il possible de combiner CSS sans frames ni iframes, 2 colonnes fixes et une colonne centrale liquide à contenu variable, pas de rechargement systématique de la page et la technologie xmlhttprequest?

Non.
Le plus raisonnable serait sans doute de revoir ses priorités. Smiley cligne

En passant : voir la remarque de Lanza dans le message suivant.
Je ne comprends pas tres bien ta derniere question car apparement tu y est arrivé. Mais par contre tu voudrais voir l'url complete pour chaque page. C'est bien ça?

Dis moi, si tu as un bon tuto pour le xmlhttprequest je suis preneur Smiley cligne j'ai le même probleme que toi et le reload des bannieres flash c'est vraiment pas terrible!
Au passage : si tu as un blanc pendant plusieurs secondes lors du changement de page (avec technique des include), tu as probablement l'un des problèmes suivants :
- un script Javascript sur ta page qui est mal optimisé et pose problème à certains navigateurs ;
- un serveur web qui répond lentement (si hébergement gratuit, chez Free ou ailleurs, c'est possible voire probable...).
Et aussi : à partir du moment où l'URL change, on change de ressource. Donc rechargement de la page. CQFD. Smiley cligne
Florent V. a écrit :
Au passage : si tu as un blanc pendant plusieurs secondes lors du changement de page (avec technique des include), tu as probablement l'un des problèmes suivants :
- un script Javascript sur ta page qui est mal optimisé et pose problème à certains navigateurs ;
- un serveur web qui répond lentement (si hébergement gratuit, chez Free ou ailleurs, c'est possible voire probable...).


Merci de ta réponse rapide!

En fait, mon site n'est pas encore hébergé, je le teste toujours en local. Mais effectivement comme le dit LaPomme, les éléménts flash sur les parties fixes de ma page sont trop lentes à recharger (même en local). J'ai pourtant déjà changé mon menu flash pour une version CSS...

Ceci dit, tu as sans doute raison, on ne peux pas tout vouloir, mais je m'étais pris à rêver Smiley cligne
LaPomme a écrit :
Je ne comprends pas tres bien ta derniere question car apparement tu y est arrivé. Mais par contre tu voudrais voir l'url complete pour chaque page. C'est bien ça?

C'est tout à fait ça!

Dis moi, si tu as un bon tuto pour le xmlhttprequest je suis preneur Smiley cligne j'ai le même probleme que toi et le reload des bannieres flash c'est vraiment pas terrible!


Voici comment j'ai réussi:

J'ai du changer mon menu flash en menu CSS car je n'arrivais pas à le faire dialoguer avec le javascript (xmlhttprequest).

Liens vers le tuto menu CSS : http://css.alsacreations.com/Construction-de-menus-en-CSS/Un-menu-deroulant-en-CSS-et-XHTML-vertical-et-horizontal


Mon menu a donc un aspect comme ceci:


<ul>
<li><a href="" onclick="gestionClic('francais.html'); return false;">Français</a></li>
<li><a href="" onclick="gestionClic('math.html'); return false;">Mathématiques</a></li>

...etc


la fonction gestionClic() provient du fichier javascript suivant qui gère la requête et injecte le code dans un div nommé 'contenu' (légèrement adapté du code trouvé sur :
http://blog.pascal-martin.fr/post/Ajax-un-premier-appel-avec-XMLHttpRequest


var http; // Notre objet XMLHttpRequest

function createRequestObject()
{
    var http;
    if (window.XMLHttpRequest)
    { // Mozilla, Safari, IE7 ...
        http = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    { // Internet Explorer 6
        http = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return http;
}

function gestionClic(url)
{
    http = createRequestObject();
    http.open('GET',url, true);
    http.onreadystatechange = handleAJAXReturn;
    http.send(null);
}

function handleAJAXReturn()
{
    if (http.readyState == 4)
    {
        if (http.status == 200)
        {
            //alert(http.responseText);
            document.getElementById('contenu').innerHTML = http.responseText;
        }
        else
        {
            alert('Probleme pour injecter le code HTML');
        }
    }
}
Merci pour ta réponse! Je n'ai pas de réponse à la tienne par contre pour l'url complete.

Je vais tenté le coup xmlhttprequest avec des liens provenant d'un menu flash. Si j'y arrive je te tiens au courant Smiley cligne
Modifié par LaPomme (09 Apr 2007 - 13:09)
Jettes une oeil ici Smiley cligne
url

lien google en cache car le media-box.net repond plus pour le moment...

<modération>Merci d'éviter les URLs trop longues qui déforment le forum.</modération>
C'est promis! Smiley confus
Modifié par LaPomme (09 Apr 2007 - 14:12)