Le rechargement d'une page via AJAX lorsque la fenêtre.location=self.localisation ne fonctionne pas
Sur ma page d'accueil j'ai eu:
<ul id="login">
<li> <a id="loginswitch" href="./login-page">log-in</a> | </li>
<li> <a id="signupswitch" href="./signup-page">sign-up</a> </li>
</ul>
Par MooTools, je reçois ces éléments d'ancrage par l'id de sorte qu'une fois qu'ils ont cliqué, une flashy div popup-dessous qui contient le login ou le formulaire d'inscription (avec des méthodes pour arrêter la propagation des événements bien sûr)
et en remplissant les champs de l'appel AJAX coups de pied dans - qui est censé créer une session et de recharger la page pour que l'utilisateur de visual qu'il est maintenant connecté et au niveau de l'utilisateur-les contrôles s'affiche etc..
De l'appel ajax est initiée par l'AJAX MooTools classe et evalScripts
option est définie à true. La page AJAX retourne le code de script:
<script type="text/javascript">window.location = self.location;</script>
Ce système fonctionne parfaitement maintenant, je me demande pourquoi si je change les ancres' href
valeurs de href="#"
mes scripts ne fonctionne plus?
N'ont rien à voir avec la fenêtre?
At-il changé ses biens quand j'ai cliqué sur un lien ou de sorte que même lorsque l'événement est de propagation a été arrêté??
OriginalL'auteur lock | 2008-10-08
Vous devez vous connecter pour publier un commentaire.
Ce javascript est en cours d'exécution.
Lorsqu'il s'exécute, le navigateur est dit de remplacer la valeur de la fenêtre.emplacement avec une nouvelle valeur. Pas tous les navigateurs va réagir de la même façon ici.. Certains vont probablement travailler comme vous vous attendez, mais d'autres passeront intelligent pour comparer deux valeurs. , Le navigateur sait quelle page c'est sur, et il sait que vous êtes juste demander pour elle d'aller à la même page.
Cache Du Navigateur
Le navigateur a même une copie de votre page en cours de cache. Il peut parler au serveur de se demander si la page qu'il a dans le cache est toujours valide. Si le cache est valide, il peut décider de ne pas forcer un rechargement de la page. Derrière les scènes, ce qui se passe avec les en-Têtes HTTP. Les navigateurs et les serveurs peuvent communiquer sur HTTP dans de nombreuses façons. Dans ce cas, votre navigateur envoie une demande rapide pour le serveur en disant quelque chose comme ceci:
Ce qui est appelé un conditionnelle requête GET. En disant Si-Modified-since, votre navigateur est en disant: "Donnez-moi ce fichier, mais seulement si elle a été modifiée depuis la dernière fois que je l'ai vu."
Longue histoire courte, vous n'avez pas dit de manière explicite le navigateur à recharger la page.
Voici comment vous pouvez:
Le "vrai" est un paramètre facultatif, pour forcer un rechargement. Le navigateur ne sera même pas regarder le cache.. Il va juste faire comme vous le dites.
si vous souhaitez définir une variable post et après cela, pour vous rafraîchir? J'ai d'autres termes, comment effectuer le rechargement avec une variable post modifié? Merci
OriginalL'auteur keparo
Aller à un point d'ancrage sur une page (qui est ce que
#
signifie -- ne nécessite pas de rechargement.OriginalL'auteur ephemient
Si ils me tendit cette tâche particulière au travail que j'avais un coup de pied à l'arrière de la conception. À moins que nous parlons d'une page sécurisée, ou un OpenID login, vous ne devriez pas pop up un connectez-vous ou inscrivez-dans la forme. Les utilisateurs doivent apprendre à regarder pour que https: en haut de leur page, et ne signez jamais si ils ne le voient pas.
OriginalL'auteur Kent Brewster