Page 1 sur 1

Ajax et History

Posté : 01 juin 2011, 16:47
par Elie
Bonjour,

Je voulais savoir la meilleure facon de gèrer l'history d'un site quand celui ci est souvent recharger en Ajax

Ex : http://www.kicks-box.com/collectors.html
Tu changes le menu déroulant pour mettre à jour la liste.
Choisissez un element en cliquant dessus.
Et biensur quand on fait précedent (Via l'history ou alors si j'avais fais un lien retour en javascript), on revient sur le listing de la première fois et non pas après avoir mise à jour le menu déroulant.

La question est :

Plutot gérer ca en PHP avec des $_SESSION[] qui se mettent à jour à chaque changement pour quand on revient dessus ou en JavaScript comme un script que j'avais croisé ici : javascript-ajax/ajax-gestion-window-his ... 52465.html

Merci,

Elie

Re: Ajax et History

Posté : 01 juin 2011, 21:57
par jojolapine
Bonsoir,

Moi je pencherais plutôt pour le système d'ancres...
Car cela permet une réelle gestion de l'historique au sein des navigateurs, tu peux par exemple retourner sur ta page le lendemain via ton historique, sans problème...
Tu peux aussi proposer de partager la page via un lien sans problème.

Pour moi jouer avec les sessions serais beaucoup moins propre, accessible et maintenable.

Re: Ajax et History

Posté : 02 juin 2011, 12:30
par Elie
Tu as un exemple ?
Merci

Re: Ajax et History

Posté : 02 juin 2011, 12:37
par jojolapine

Re: Ajax et History

Posté : 03 juin 2011, 22:43
par Elie
Et bien c'est très interessant ...
Voici ce que j'ai fait en mélangeant avec prototype :

// Si il y a un hash c'est que l'on veut pretrier la page des qu'elle se charge donc :

Code : Tout sélectionner

Event.observe(window, 'load', function() { var hash = parent.location.hash; if(!hash.blank()) updateFiches(1, hash.substring(1).replace(/\//gi, '&')); // J'ai été obligé de le mettre dans les variables });
Et donc quand je met a jour la page, je met toutes les valeurs si elle sont renseigné dans le hash et je remplace les & par des / pour que ca fasse plus joli :

Code : Tout sélectionner

function updateFiches(num[b], param[/b]) { $('pages').value = num; var parameter = (typeof(window[param]) == "undefined") ? $('f_rechercher').serialize() : param; // Ca bloquait les nouvelles recherches si il y avait deja un hash... La c'est uniquement si cela est au chargement de la page. // On met a jour les fiches new Ajax.Updater('fiche', 'include/ajax/listeToutesFiches.php', { method: 'get', parameters: parameter, asynchronous: false, evalScripts: true, onComplete: function() { var champ = parameter.split('&'); var hash = ''; for(i=0; i<champ.length; i++) { var contenu = champ[i].split('='); if(!contenu[1].blank()) hash += contenu[0]+'='+contenu[1]+'/'; } parent.location.hash = hash; } }); }
Je risque de réutiliser ca les autres sites :)
Je vais tacher de mettre cela en place très vite et d'attendre les retours des utilsateurs !

Merci en tout cas !

Re: Ajax et History

Posté : 03 juin 2011, 23:24
par zeus
Modération :
Afin d'obtenir plus de réponses, le sujet a été déplacé dans un forum plus approprié.

Merci de prendre le temps de lire les règlements
ainsi que l'intitulé de chaque forum avant de poster un nouveau sujet.