J'ai utilisé l'approche de hachage pour une application entièrement ajax avec SEO. D'après mon expérience, je dirais que c'est une approche très fiable à la fois pour les navigateurs Web et les navigateurs de téléphones intelligents.
Voici ma démarche. Pour la simplicité du code, j'utiliserai le code Jquery/Zepto
Lorsque vous devez charger une page ajax différente, changez simplement le hash de l'URL en utilisant javascript.
window.location.hash = '#!page1';
Ensuite, un événement de changement de hachage feu du javascript
$(window).on('hashchange',loadPage);
gérer cet événement avec la fonction LoadPage
var loadPage = function(e){
pageId = window.location.hash;
_gaq.push(['_trackPageview', '/'+pageId]); //For google analytics virtual page push
if(pageId == '#!page1'){
$.get('ajax/page1.php', function(response) {
$('#main').html(response);
});
}else if(pageId == '#!page2'){
$.get('ajax/page2.php', function(response) {
$('#main').html(response);
});
}
}
De cette manière, vous pouvez charger une page en tapant l'URL et par en utilisant le lien aussi bien.
Maintenant, la partie SEO. Google et d'autres grands moteurs de recherche ont développé un moyen d'explorer un site Web basé sur ajax. Si tu utilises #! dans votre URL google va remplacer le #! avec '? _escaped_fragment_' et vous demandera du contenu. par exemple
www.yoursite.com/#!page1 sera converti en www.yoursite.com/?_escaped_fragment_=page1
Tout ce que vous devez faire est de captures qui _escaped_fragment_ en tant que paramètre GET. Si vous utilisez php le code sera comme
if (isset($_GET['_escaped_fragment_'])) {
$fragment = $_GET['_escaped_fragment_'];
if($fragment == 'page1')
echo include 'ajax/page1.php'; // or use readfile method
else if($fragment == 'page2')
echo include 'ajax/page2.php'; // or use readfile method
}
Vous pouvez également définir le titre et la description de la page html pour chaque page individuellement en attrapant le _escaped_fragment_
Sur une note séparée, vous pouvez partager URL dans les médias sociaux en utilisant #! ainsi que. Il sera analysé comme un lien régulier avec l'aide de _escaped_fragment_
J'espère que cette approche vous aidera à couvrir tous les problèmes.
Il est appelé Ajax lien profond au cas où quelqu'un est autre demandent – Atomix
Merci @Atomix, je cherchais le nom – Jacques