Ajax et History

Mammouth du PHP | 1339 Messages

01 juin 2011, 16:47

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
Bon sinon tu me fais un message privé et on se fait un TeamViewer

ViPHP
ViPHP | 3607 Messages

01 juin 2011, 21:57

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.

Mammouth du PHP | 1339 Messages

02 juin 2011, 12:30

Tu as un exemple ?
Merci
Bon sinon tu me fais un message privé et on se fait un TeamViewer

ViPHP
ViPHP | 3607 Messages

02 juin 2011, 12:37


Mammouth du PHP | 1339 Messages

03 juin 2011, 22:43

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 !
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 juin 2011, 23:24

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.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer