IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Changer de page et de css en meme temps


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de HWICE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 249
    Points : 104
    Points
    104
    Par défaut [AJAX] Changer de page et de css en meme temps
    Bonjour a tous,
    J'ai créé un site avec 8 pages. Dans mon index je mets tout, il y a juste le contenu d'un div qui change et le css. Donc jai 8 css, un pour chaque page. J'ai fait le tout en php mais j'aimerai que la page reload pas. J'ai trouver comment faire en ajax. Tout fonctionne mais il y a quand meme une sorte de « flashement ». J'ai installer ajax justement pour que ca ne flash pas. voici le code
    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <script type='text/JavaScript'>
    var xhr = null; 
    function getXhr()
    {
         if(window.XMLHttpRequest)xhr = new XMLHttpRequest(); 
    else if(window.ActiveXObject)
      { 
      try{
         xhr = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) 
         {
         xhr = new ActiveXObject("Microsoft.XMLHTTP");
         }
      }
    else 
      {
      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
      xhr = false; 
      } 
    }
     
    function ShowPage(page)
    {
    getXhr();
    xhr.onreadystatechange = function()
        {
         if(xhr.readyState == 4 && xhr.status == 200)
         {
         document.getElementById('texte').innerHTML=xhr.responseText;
         }
        }
    xhr.open("GET","ajax.php?page="+page,true);
    xhr.send(null);
    }
     
    </script>
    <div id="joli" class="cjolifou"><a href="#" onClick="ShowPage('jolis')" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('jolifous','','images/jolifouO.png',1)"><img src="images/jolifou.png" name="jolifous" width="160" height="30" border="0"></a></div>
    ajax.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
     
    $page=$_GET['page'];
         if($page==$_GET['page']){
         include "francais/include/".$_GET['page'].".php";
         }
         else{
          require "francais/include/accueil.php";
         }
     $page=$_GET['page'];?>
    <?php 
     
    if ($_GET['page']!=''){
        if ($_GET['css'] !=''){
            $css=$_GET['css'];
            }
        else{
            $css=$_GET['page'];
            }
        }
    else {
    $css='accueil';}?>
    <link href="css/jolifou_<?php echo "$css" ?>.css" rel="stylesheet" type="text/css">
    Comment éviter ce « flashement »

    merci de votre aide

  2. #2
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Ce clignotement est normal, puisqu'il faut le temps que le navigateur charge ton css. A partir du moment ou tu affiches la structure html avant d'avoir chargé le css, tu l'as obligatoirement.

    Une solution possible serait de charger ton css avant ta page via une première requpete synchrone (mais qui peut causer un freeze du navigateur).

    L'autre solution, serait d'avoir tous tes css dans le même fichier...

  3. #3
    Membre régulier Avatar de HWICE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 249
    Points : 104
    Points
    104
    Par défaut
    Le truc c'est que mes 8 css differant c'est pour que mon tableau, qui est former uniquement de div avec des couleur de fond et de contour, change de couleur quand tu change de page. Mon site est fait style Mondrian

  4. #4
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    J'ai suis pas sur d'avoir tout compris, mais si c'est juste pour changer la couleur de fond de la div qui représente ta page active, tu devrais pouvoir te contenter de la changer via javascript?

    Genre au moment ou tu fais ton appel Ajax, tu fais aussi un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    madiv.style.backgroundColor = "red"

  5. #5
    Membre régulier Avatar de HWICE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 249
    Points : 104
    Points
    104
    Par défaut
    a tester merci


    mais jai changer mon site alors...
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] changer qu'un seul block d'un page
    Par nintendoplayer dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/08/2007, 14h22
  2. Changer les proprietes de plusieurs fichiers en meme temps
    Par VlaMonPseudo dans le forum Windows
    Réponses: 2
    Dernier message: 27/07/2007, 15h51
  3. [AJAX] Changer l'url de la page sans rafraichir la page
    Par bonjour69 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/11/2006, 09h56
  4. [AJAX] Formulaire prépopuler avec du ajax dans la page
    Par shwin dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2005, 15h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo