Merci d'avoir posté. Veuillez patienter pendant que vous êtes redirigé.
Si vous n'êtes pas automatiquement redirigé, veuillez cliquer ici.
Vous connaissez probablement des messages comme ceux-ci, surtout lorsque vous utilisez le Web dans les années 90 ou au début des années 2000. Dans mes propres projets, je n'ai jamais trouvé de raison de faire attendre l'utilisateur 2 à 3 secondes pendant qu'il est redirigé après l'enregistrement ou la publication de quelque chose, par exemple. Mais ce modèle revient tout le temps, même dans les logiciels Web populaires comme PHPBB.
Ma question est, la redirection a-t-elle toujours une place / un besoin dans le développement web moderne (ajaxy)? Y a-t-il des situations qui nécessitent absolument une redirection comme celle-ci, qui ennuie finalement l'utilisateur, et quelles sont les raisons techniques derrière elles ? Pourquoi ne pas simplement rediriger instantanément si une redirection est requise?
la source
Réponses:
L'intention la plus courante (généralement dans le cas d'une demande qui crée un nouvel enregistrement dans une base de données, traite une transaction de paiement, etc.) est la prévention des demandes en double si l'utilisateur clique sur le bouton "Actualiser" et republie la demande.
Si vous parvenez à dire aux utilisateurs qui ont désactivé Javascript que leurs demandes seront ignorées ou éventuellement mal traitées (le message "Ne cliquez pas sur soumettre plus d'une fois!" Vient à l'esprit), bien sûr - mais ce n'est pas un énorme effort pour soutenir ces excentriques Utilisateurs désactivés JS et garantissent que le service de facturation ne voit pas la réclamation occasionnelle de double facturation, de sorte que la redirection est toujours implémentée dans de nombreuses interfaces.
La redirection doit être émise instantanément si le but est d'empêcher les soumissions de formulaires multiples - dans le cas des redirections chronométrées, elles sont peut-être orientées vers des serveurs lents, elles n'ont pas réussi à prendre en compte un verrouillage basé sur la session, ou elles essaient de résoudre un problème plus ésotérique.
la source
F5
sur laStand by
page causeront également poste de réémettre.Tout d'abord, tous les navigateurs ne redirigeront pas lorsqu'ils auront un en-tête Location. Deuxièmement, tous les navigateurs ne redirigeront pas avec Javascript car il est désactivé. Troisièmement, tous les navigateurs ne prendront pas en charge les balises meta-refresh. N'importe lequel de ces cas est probablement très rare, donc cela n'aura probablement pas d'importance. Mais même si c'est le cas, vous pouvez chevaucher toutes ces méthodes, je pense.
La façon dont les pages PHPBB le font (attend 5 secondes ou quelque chose) n'est pas du tout nécessaire. Il devrait rediriger immédiatement et si ce n'est pas le cas, il affichera la page HTML (qui contient une méta-actualisation et Javascript et du texte avec un lien) après l'envoi des en-têtes. Il n'y a presque aucune chance que cette page soit affichée par un navigateur normal si elle est correctement programmée.
la source
header()
fonction de PHP pourrait être ignoré? Cela m'inquiète beaucoup. J'étais déjà au courant des méthodes de redirection HTML et JS et de la façon dont elles sont moins fiables, mais je n'ai jamais pensé qu'un en-tête HTTP envoyé par le serveur pouvait être ignoré.J'envoie toujours une redirection dans l'en-tête de réponse avec le code d'état HTTP approprié (par exemple 301 ou 302 - voir http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html ), ce qui entraîne une redirection immédiate. Je ne connais pas de bonnes raisons techniques pour lesquelles quelqu'un afficherait un "veuillez patienter pendant que vous êtes redirigé".
la source
La principale raison pour cela est qu'un enregistrement est effectué sur le site que vous avez été redirigé. La page pourrait charger Google Analytics, mais les données figureront également dans les blogs.
Si vous envoyez une redirection à l'aide des en-têtes HTTP, le navigateur se rendra sur l'autre site sans faire de demande supplémentaire au site d'origine. Le suivi basé sur Javascript peut intercepter ces sorties, mais il offre au propriétaire du site de meilleures opportunités de suivi.
Dans certains cas, vous souhaiterez peut-être également fournir une clause de non-responsabilité à l'utilisateur lorsqu'il est redirigé. Ceci est particulièrement important pour les webmasters travaillant dans des secteurs réglementés. Si vous ne travaillez pas dans une industrie réglementée comme la banque ou les produits pharmaceutiques, vous n'aurez pas beaucoup d'appréciation pour ces exigences.
la source
Il permet également au bouton de retour de fonctionner correctement.
la source