2008-10-02 10 views
32

Je lance un jeu basé sur un navigateur sur www.darknovagames.com. Récemment, j'ai travaillé sur le reformatage du site avec CSS, en essayant de vérifier toutes ses pages selon le standard HTML. Je suis en train de jouer avec cette idée d'avoir le menu de navigation sur la gauche AJAX les pages (plutôt que d'amener l'utilisateur à une page séparée à chaque fois, nécessitant un rechargement de la barre de titre et de navigation, qui presque jamais changer) et je sais que si je le fais, je vais probablement casser les boutons Forward/Back dans le navigateur. Ma question est, devrais-je aller de l'avant et AJAX le site, obligeant ainsi l'utilisateur à utiliser la navigation des sites pour jouer au jeu, ou devrais-je quitter le site tel qu'il est actuellement, et utiliser des hyperliens standard?AJAX et le bouton Précédent du navigateur

La raison pour laquelle je demande que je suppose est que j'ai construit un système de forums dans le site, et beaucoup de fois je voudrais lier dire à un sujet particulier dans les forums.

Je suis également ouvert aux suggestions. Existe-t-il un moyen standard (de préférence sans cadres traditionnels) de ne faire que recharger la zone du corps du site, tout en modifiant l'URL pour que les utilisateurs puissent ajouter des signets et les transmettre, etc.? Cela pourrait potentiellement résoudre mon problème aussi. Je demande simplement la meilleure solution ici, pas une réponse à une question spécifique.^_^

Merci

Répondre

26

Si vous souhaitez activer AJAX, ne le faites pas au détriment d'avoir des URL accessibles à toutes les pages importantes de votre site. C'est l'épine dorsale d'un site navigable que les gens peuvent utiliser. Lorsque vous transférez toutes vos fonctionnalités dans les appels et les rappels AJAX, vous forcez vos utilisateurs à accéder aux fonctionnalités et au contenu dont ils ont besoin, ce qui va totalement à l'encontre du fonctionnement du Web. Les gens comptent sur la barre d'adresse et le bouton de retour. Si vous substituez tous vos liens afin que votre site soit essentiellement une seule page qui n'est mise à jour que via AJAX, vous limitez la capacité de vos utilisateurs à naviguer sur votre site et à trouver ce dont ils ont besoin. Cela empêche également vos utilisateurs de partager ce qu'ils trouvent (ce qui fait partie du problème, n'est-ce pas?). Pensez à la carte mentale d'un utilisateur de votre site. S'ils savent qu'ils sont arrivés par la page d'accueil, ils sont allés chercher quelque chose, puis ils ont atterri sur une page de jeux, puis ils ont commencé à jouer à un jeu particulier, c'est-à-dire quatre unités d'action distinctes. Ils pourraient avoir fait quelques autres actions plus petites, plus insignifiantes sur chacune de ces pages - mais ce sont les unités principales. Lorsqu'ils cliquent sur le bouton Retour, ils doivent s'attendre à revenir sur le chemin qu'ils ont emprunté. Si vous chargez toutes ces pages via des appels AJAX, vous fournissez un site dont les fonctionnalités vont à l'encontre des attentes de l'utilisateur. Brisez votre site dans toutes les fonctions importantes (par exemple, la recherche, la maison, les profils, les jeux - tout dépendra de la nature de votre site). Partout où vous liez à ces pages, faites-le via un lien normal et une URL statique.

AJAX va bien. Mais l'art est de savoir quand l'utiliser et quand ne pas le faire. Si vous gardez le modèle que j'ai esquissé ci-dessus, vos utilisateurs l'apprécieront.

+0

+1 N'utilisez pas AJAX pour transformer votre site entier en site Flash. Deuxième syndrome du système à son meilleur. – Soviut

+0

@Soviut envisageriez-vous également d'autres applications (semi-) AJAX comme les systèmes Gmail ou Google MPS? – Mansiemans

+0

@Mansiemans, non parce qu'ils honorent le système d'URL de sorte que vous pouvez mettre en signet diverses parties de l'application et utiliser le bouton de retour. – Soviut

34

Utilisez ajax pour des parties de la page qui doit mettre à jour, pas la chose entière. Pour cela, vous devez utiliser des modèles. Si vous souhaitez conserver le bouton de retour pour vos différents changements d'état sur la page, combinez-les aveC# achors pour modifier l'URL (sans forcer le navigateur à émettre un autre GET).

Par exemple, de gmail ressemble à ceci:

mail.google.com/#inbox/message-1234

tout le passé # était un état Page changement qui a eu lieu via ajax. Si je presse Retour, je vais à nouveau à la boîte de réception (encore une fois, sans un autre navigateur GET)

+0

tip Impressionnant ... merci. – dacracot

2

Il existe de nombreuses façons de résoudre ce problème en utilisant des techniques Javascript funky, impliquant souvent des iframes, mais je pense que dans cette situation, vous avez besoin pour savoir pourquoi vous utilisez AJAX. Cela va-t-il réellement rendre le site plus facile à utiliser pour l'utilisateur? Il me semble que vous l'utilisez parce que vous pensez que c'est cool (ce qui en soi n'est pas toujours une mauvaise chose), pas parce que cela va vraiment ajouter de la valeur à vos visiteurs. À partir de n'importe quel site Web normal, les documents hyperliens normaux sont presque toujours la bonne chose pour la navigation principale. C'est ce que les gens attendent et je ne vous recommanderais pas de contourner ces attentes basées sur une technologie de pointe. AJAX est génial et vous permet de faire beaucoup de grandes choses, en changeant une navigation de sites Web n'est pas l'un d'entre eux.

Bravo pour ce problème, il y a beaucoup de sites qui fonctionnent avec AJAX et qui ne pensent même pas à ça!

+0

Le site utilise déjà AJAX pour le moment. C'est un jeu par navigateur, et les statistiques de tout le monde sont mises à jour sur le serveur toutes les 15 minutes, donc en fonction de la page sur laquelle ils se trouvent, je AJAX dans les nouvelles informations afin que la page soit précise. –

+0

Donc, vous l'utilisez déjà dans des endroits où cela a vraiment du sens, je ne pense pas que l'étendre de cette manière a également du sens. – roryf

1

AJAX n'est pas la meilleure solution pour la navigation exactement pour la raison que vous décrivez. Le succès de rechargement de l'en-tête et de la barre de navigation est minime comparé à la difficulté de casser l'interface de navigation du navigateur. Un exemple plus approprié d'AJAX serait de permettre aux utilisateurs de jouer au jeu dans la fenêtre principale pendant qu'ils peuvent parcourir une liste d'autres contenus dans un volet de navigation. Vous pouvez charger des éléments supplémentaires dans le volet de navigation via AJAX sans perturber le gameplay.

0

Je resterais avec de simples hyperliens. Le mobilier de votre page ne doit pas représenter une grande partie du HTML, donc ce n'est pas une grande victoire à l'exclusion des demandes de page. Rendre chaque ressource adressable (c'est-à-dire une URL pour chaque bit de contenu susceptible d'intéresser un utilisateur) est une caractéristique clé de conception du web. Cela signifie que la mise en cache peut fonctionner et que les utilisateurs peuvent partager des signets. Il fait fonctionner Google, ainsi que des sites de bookmarking social.

Rayer quelques octets HTML des modifications de page suivantes ne vaut pas la peine, à mon avis.

5

Découvrez reallysimplehistory. Le wiki n'a pas été mis à jour depuis 10 mois, mais j'étais juste à l'Ajax Experience 2008 et j'ai vu un presentation de Brian Dillard. Il dit que le code 0.8 est sur son disque dur. Espérons qu'il sera bientôt téléchargeable.

2

Yo pourrait vouloir vérifier; "Really Simple History" par Brad Neuberg ...

2

Essayez ceci simple & léger PathJS lib. Il permet de lier les auditeurs directement aux ancres.

Exemple:

Path.map("#/page").to(function(){ 
    alert('page!'); 
});