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

AJAX Discussion :

[AJAX] #! hash-bang - comment ça marche ? des ressources ?


Sujet :

AJAX

  1. #1
    Futur Membre du Club
    Profil pro
    Webdesigner
    Inscrit en
    Juillet 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 21
    Points : 6
    Points
    6
    Par défaut [AJAX] #! hash-bang - comment ça marche ? des ressources ?
    Bonjour à tous,

    suite à un commentaire sur une de mes questions sur ce forum, qui me conseillait de me pencher du côté du hash-bang, je viens par ici pour vous poser quelques questions.

    1 - Y aurait-il une doc ou un tutoriel simple pour mettre en place un hash-bang ?

    2 - Voici mon code ci-dessous.
    j'aimerais donc obtenir quelque chose du genre monsite/#!/page01

    comment est-ce possible ?
    et suis-je dans le bon raisonnement pour obtenir tout les bénéfices du hash-bang ?

    merci de votre aide !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function getCurrentUrl() {
                    // l'url reprend le href de : exemple : "#projet1 a" -> page01.html
    		url = $("#"+deployer.substring(0,6)+' a').attr('href');
           		$($.get(url, function (data{$("#bigload").empty().append(data);},'html')
            						);
    }

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    1 . La documentation à ce sujet se trouve ici : https://developers.google.com/webmasters/ajax-crawling/ https://developers.google.com/webmas...etting-started

    2 . Je ne vois pas le rapport entre ton code et les google hash bang.
    Pour changer le hash d'une page il faut changer la valeur de , par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    window.location.hash = '#!/mapage';
    $.ajax({
       url : '/ajax.php?p=mapage',
       // ...
    });
    Ensuite conformément à ce qui est écrit dans la documentation de google il faut que tu gères l'accès aux URLs de la forme /?_escaped_fragment_=mapage
    Cette page doit renvoyer exactement le même contenu HTML que quand tu changes ta page en AJAX dynamiquement.

  3. #3
    Futur Membre du Club
    Profil pro
    Webdesigner
    Inscrit en
    Juillet 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    en effet aucun rapport, c'est mon code de base vierge de tout code lié au hash-bang

    je ne comprends pas le cheminement entre faire un get(url ... ) et lire cette même page en declenchant toutes les actions (le slide to qui la fait apparaitre etc...)

  4. #4
    Futur Membre du Club
    Profil pro
    Webdesigner
    Inscrit en
    Juillet 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    pourrais tu si possible m'éclairer en 3 étapes sur ce que je dois modifier pour passer de mon truc normal à mon truc hash bang ?

  5. #5
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    je ne comprends pas le cheminement entre faire un get(url ... ) et lire cette même page en declenchant toutes les actions (le slide to qui la fait apparaitre etc...)
    En fait le principe est le suivant : Google détecte dans ta page les liens qui contiennent des hash bangs, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="/#!/news">News</a>
    Sauf que comme le contenu de ces liens est généré dynamiquement, Google ne pourra pas indexer le contenu en accédant à /#!/news car !/news est une ancre, pas une URL réelle. Du coup Google a définit un principe qui dit qu'il va aller chercher le contenu de la page /#!/news à l'adresse suivante : /?_escaped_fragment_=/news.

    Ensuite, imaginons que tu utilises PHP, tu pourrais faire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(isset($_GET['_escaped_fragment_'])){
       $fragment = $_GET['_escaped_fragment_'];
       if($fragment === 'news')
            show_complete_news_page();
    }
    (ceci est un simple exemple de compréhension de fonctionnement)

    Tu peux aussi utiliser htacces pour rediriger toutes les requetes de type _escaped_fragment_ vers un script particulier.

    Concernant le déclenchement des slides to etc...
    Prenons toujours l'exemple du lien <a href="/#!/news">. Il te faut un moyen de détecter le click sur ce lien (ou du moins le changement de hash bang dans la barre). Tu peux utiliser pour cela le plugin jQuery http://benalman.com/projects/jquery-hashchange-plugin/

    Il te permet de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    jQuery(window).hashchange(funtion(){
       var hash = window.location.hash;
       if(hash === '!/news'){
            loadNewsPage(); // slideto etc...
       }
    });

Discussions similaires

  1. Réponses: 45
    Dernier message: 20/06/2016, 12h07
  2. Réponses: 0
    Dernier message: 20/03/2015, 08h25
  3. Réponses: 0
    Dernier message: 20/03/2015, 08h25
  4. Réponses: 6
    Dernier message: 06/07/2009, 13h06

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