Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ajax et rechargement via F5

    28 décembre 2008 à 12:04:26

    Bonjour,

    J'utilise l'ajax et plus précisémenent Prototype sur mon site.
    Je fais appelle à la méthode ajax.updater pour mettre a jour mes divs.
    Cependant, lorsque je fais F5 pour recharger la page en cours, je retombe sur la page d'accueil de mon site et non sur la page en cours.

    Normal en effet.

    Mais je voulais savoir si il y avait un moyen de faire de l'ajax pour mettre à jour des divs et également de propager les adresses web dans la barre d'adresse, en rapport avec la mise à jour de la div modifiée afin que je puisse enfin utiliser F5 sans revenir à ma page d'accueil.

    En gros quand j'applique la méthode suivante:

    Ajax.updater(url,div,{method: get}), il faudrait que le paramètre url s'affiche dans la barre d'adresse mais que seulement la div ayant pour nom le paramètre div donné dans la méthode ajax.updater soit modifié.

    J'ai vu certains jeux tel que Hordes pouvait faire se semblant de ce que je demande. Puisqu'en naviguant sur leur site, ils mettent à jour seulement une partie du contenu mais en faisant F5, on retombe bien sur la pege en cours. C'est ce que je souhaite également.

    Merci de l'aide que vous pourrez m'apporter.
    • Partager sur Facebook
    • Partager sur Twitter
      28 décembre 2008 à 12:17:40

      Ben moi sans me prendre la tête ce que je ferai c'est que lorsque du met a jour tes div donc tu appel un fichier php !!, a la fin de ce fichier tu génère une variable de SESSION, si tu fait F5, variable de SESSION existera donc tu peux faire afficher tes bonnes div sinon ben tu efface ta variable de SESSION avec la fonction unset();, et si elle existe pas ben tu fait afficher tes div normale

      NON ????
      • Partager sur Facebook
      • Partager sur Twitter
        28 décembre 2008 à 12:33:16

        Ba le mieux serait de pouvoir contrôler l'évènement F5 si possible et de dire au navigateur vers quel page aller si on clique sur F5.

        Enfin je pense.

        Mais je sais pas si c'est possible car en faite moi j'ai toujours l'adresse http://mondomaine.com/index.php quand je met à jour mes divs.
        • Partager sur Facebook
        • Partager sur Twitter
          28 décembre 2008 à 13:03:11

          J'ai bosser dessus il y a pas longtemps, le souci c'est que ok ta F5, mais ta aussi le clic droit actualise, le bouton actualise du navigateur et je ne sais encore quel raccourci clavier :p

          ca fait bcp d'événement a vérifier ca, j'ai opter pour une variable en session pas bcp plus chiant.

          Sinon j'ai testé avec onbeforeunload(); cette événement s'active quand du ferme ta page, quand tu la rafraichi ou quand tu envoi un formulaire peut être d'autre mais j'ai pas tout tester
          • Partager sur Facebook
          • Partager sur Twitter
            31 décembre 2008 à 15:56:21

            En faite, je vais préciser plus clairement mon problème:

            J'utilise Prototype et sa méthode Ajax.updater()

            Je met a jour mes divs comme ceci:
            Functions.js
            ajaxpage = function (div,liens,param1,param11)
            {
            	var div = div;
            	var url = liens+'?'+param1;
            	var parametres = param1+'='+param11;
            	var MyAjax = new Ajax.Updater(
            		div,
            		url,
            		{
            			method: 'get', 
            			parameters: parametres, 
            			evalScripts: true
            		}
            	);
            }
            

            Page index.php
            <a href="/dossier1/page1.php" onclick="ajaxpage('div1','/dossier1/page1.php'); return false;">MENU1</a>
            <div id="div1">Contenu par défaut</div>
            


            Quand je clic sur le lien ci-dessus, la div "div1" se met donc logiquement à jour. Parfait!
            Les soucis est que le return false fait qu'en faite, je reste sur index.php et quand je fais F5 pour recharger mon navigateur ou clic droit->Actualiser, je retourne sur le contenu par défaut de ma page index.php.

            Mais moi je souhaite que l'actualisation de ma page me fasse retomber sur la même page avec la div "div1" précédemment modifiée.

            Vous comprenez mon soucis? Car pour le client de mon site, c'est pas très propre pour lui de revenir à la page d'index de mon site lorsqu'il fait F5. Ainsi, je souhaite garder ma méthode de mise à jour de ma div en ajax tout en éssayant lors du rechargement de la page, de ne pas revenir à la page d'index.php avec le contenu par défaut de la div modifiable.
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              31 décembre 2008 à 16:18:00

              les session et tout le bordel c'est n'imp. Il faut que tu joues avec le hash de l'url.

              la partie après le # dans une url.
              http://tonsite.com/page#hash

              Au chargement de ta page du récupère ça, et tu lance une requete ajax qui va te chercher la page en fonction. Et avec cette ruse de sioux, le bouton retour arrière du navigateur fonctionne et tu peux bookmarker la page. hourra!
              • Partager sur Facebook
              • Partager sur Twitter
                31 décembre 2008 à 16:44:49

                Ah je vois, une sorte d'ancre.
                Mais t'aurais pas un exemple s'il te plait.

                On dit que les exemples sont toujours plus parlant :p XD
                • Partager sur Facebook
                • Partager sur Twitter
                  6 janvier 2009 à 11:15:23

                  Personne à une autre idée car celle de nod_ ne semble pas fonctionner. :euh:
                  • Partager sur Facebook
                  • Partager sur Twitter
                    6 janvier 2009 à 11:40:35

                    Bien sûr qu'elle fonctionne :p
                    En pratique :
                    -> Lorsque tu changes le contenu d'une zone ou met à jour un affichage en javascript, tu modifies le hash (par exemple si tu mets la page "accueil" dans une div, tu mets #accueil dans l'url)
                    -> Lors du chargement de la page, tu regardes s'il y a un hash, et s'il y en a un, tu mets le contenu correspondant dans la div
                    Ainsi tu gardes une trace dans l'url de l'affichage mis en javascript, ce qui te permet de savoir ce qu'il faut afficher lors du (re)chargement de la page.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Ajax et rechargement via F5

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown