Bonjour à tous ,

J'ai un question que je me pose en MVC , j'ai travaillé sur un projet pour mon examen et je vais vous donner un exemple :

Je fais appel à mon controlleur qui gére le login quand je clique sur le bouton "se connecter" , je verifie les infos etc... et aprés si c'est ok je retourne sur l'accueil ou sinon je reaffiche le formulaire d'authentification pour ma part quand j'ai commencé je faisais une redirection avec un header("Location:..."); mais on m'a fait la remarque comme quoi cela ne faisait pas qui fallait faire appel directement aux vues concernées donc j'aimerai avoir une explication pourquoi procédé de cette facon ?

Merci

4 réponses


Huggy
Réponse acceptée

J'imagine que c'est une question d'optimisation.
si tu fais un header('Location: ..), tu envoies une demande au navigateur pour qu'il se redirige de lui même sur la nouvelle url.
ça fait un aller-retour supplémentaire par rapport à l'envoi direct de la vue.
Maintenant si le navigateur possède déjà la vue en cache, l'envoi de la vue est inutile, et on a utilisé de la bande passante inutilement.
Si on est sûr que le navigateur n'a pas la vue en cache, alors c'est mieux de lui envoyer la vue directement.
Si la vue contient des nouvelles données c'est mieux aussi de lui renvoyer la vue directement

seb2913
Auteur

Bonjour ,

il y'a personne pour me renseigner concernant ma question ?

seb2913
Auteur

Merci pour ta réponse Huggy

Bonjour, pour rester dans la logique MVC il me semble preferable de rappeler le controller avec l'action login au lieu du header(" location....)
mais ce n est que mon avis ....