sur un nouveau projet d'appli web, j'ai une contrainte super lourde : y'a une applet java dans la page et il est indispensable d'eviter de la recharger. Cad qu'il faut éviter de recharger la page.
donc mon 1er reflexe a été de subvertir ajax pour ne pas recharger la page, mais recharger des morceaux de html (c'est bon ca marche).
Le probleme c'est que si je fais la navigation suivante
1. aller sur google.fr
2. aller sur mon appli (la page se charge, l'applet aussi)
3. cliquer un lien de l'appli (qui lance une requete javascript qui me recharge un bout de html)
4. cliquer sur un autre lien (là encore ca me recharge un bout de page, l'applet continue tjs à tourner, tout va bien)
5. je clique sur le bouton précédent du navigateur (testé avec firefox...)
==> paf ca me ramène sur google.
forcément diront certains avec raison : seulement 2 pages ont été chargées !
pourtant si je regarde gmail, à en regarder le flux réseau sous firebug, c'est que de l'ajax et pourtant les boutons suivant et précédent du navigateur fonctionnent comme attendu.
j'ai pensé à trois options
1. oublier ajax et faire un bon vieux frameset des familles. dans le 1er frame je mets l'applet java, dans l'autre je mets l'appli web. ensuite toute la navigation se passe dans ce cadre. lorsque je recharge le cadre de l'appli web via des liens normaux <a href="listTruc.php?id=234">afficher 234</a> l'applet n'est pas déchargée et continue à tourner normalement
==> ca devrait marcher non ?
2. stocker dans javascript l'historique des commandes effectuées et mettre des boutons "Précédent" et "Suivant" sur ma page qui émulent le comportement du navigateur
==> je trouve ca completement contre-intuitif, mais au moins je suis sur que ca va marcher
3. faire comme #2 sauf qu'au lieu de mettre des boutons précédent/suivant, je trouve un moyen de capturer les évènements "Précédent/Suivant" du navigateur, j'empeche le reload de page et je lance mon javascript à la place
==> d'intuition je le sens pas ce plan... mais bon, on sait jms pe qqn a déjà tenté le coup
qqn a une idée ? comment ils font dans gmail ?![]()
![]()
![]()
Partager