Page 1 sur 1

reload d'une page PHP

Posté : 23 déc. 2011, 21:46
par dionee66
Bonsoir

J'ai crée une application qui nécessite l'utilisation de comptes personnels.
Des que l'utilisateur s'est loggé sur son compte, j'instancie toutes les classes, et affiche toutes les informations relatives à son compte.
Ces informations sont fournies par des getter, des basiques MonObjet->GetInfos.

Or, l'utilisateur peut etre amené a faire des manips sur son compte, et à mettre à jour certaines infos.
Jusqu'a présent j'utilise, apres avoir mis a jour la BDD qui contient toutes les infos, une header qui recharge la page principale.

Est-ce que le fait de recharger la page de cette maniere est "correcte". Est-ce que ca provoque l'instanciation de toutes les class, comme lorsque l'utilisateur se logge sur son compte ?

Quel conseile donneriez-vous pour que je puisse mettre a jour proprement des infos à l'ecran, sachant que je code en PHP5 :p

Re: reload d'une page PHP

Posté : 23 déc. 2011, 21:49
par xTG
Si tu recharges la page, tu réenvois une requête au serveur qui réexécute le script.
Donc oui tu réinstancies toutes les class.

Si tu veux modifier des informations sans avoir à tout recharger il faut voir du côté de l'Ajax.
C'est avant tout pour ne pas recharger la page côté client, mais tu peux aussi l'utiliser pour accéder à des scripts chargeant le strict minimum pour effectuer la modification en base de données et renvoyer les informations à jour vers la page client.

Re: reload d'une page PHP

Posté : 23 déc. 2011, 21:53
par dionee66
hmmm, ok

Le mieux est donc d'oublier le reload , et le header, et de travailler exclusivement avec Ajax (et donc JQuery) ?

Re: reload d'une page PHP

Posté : 23 déc. 2011, 22:38
par xTG
Avant de passer vers ce type de changements je m'assurerai que la ralentissement provient bien de l'instanciation de toutes ces classes. ;)
Et surtout voir si tout est utile.

Sinon tu peux aussi serialiser des objets en session s'ils ne sont pas amené à être modifié.
Ainsi tu gagnes du temps en récupération de données puisque tu n'auras qu'à desérialiser l'objet sans faire un seul accès bdd.

Re: reload d'une page PHP

Posté : 23 déc. 2011, 22:47
par dionee66
ok
non, ca ne pompe pas trop de ressources

c'est jsute que je cherche a acquerir les bonnes pratiques, et eviter de faire du code crado

Au pire, la seule classe qui se ferait reinstancier a chaque fois, c 'est celle qui gere la connexion a la BDD....?

Re: reload d'une page PHP

Posté : 23 déc. 2011, 22:56
par xTG
Préfères instancier à chaque chargement dans ce cas.
C'est propre et clair, et il sera toujours temps d'y repenser si un jour l'application devient trop lente.
Car commencer à monter des usines à gaz (j'entends par là en complexité) n'est pas forcement tiptop. ^^

Re: reload d'une page PHP

Posté : 16 janv. 2012, 11:35
par haugure
Salut,

Personnellement je préférerai travailler dans ton cas avec du XML, au chargement de la page tu génère un XML toXML, que tu manipule avec une trame JS puis ... ce qui te permettrai d'avoir des GetInfos en Ajax... à chaque modification tu mets à jour ton XML et lorsque tu le souhaite tu fais des saveToDB... En mon sens c'est bien plus propre, rien ne t’empêche par la suite d'avoir un XML bcp plus compliqué, et ça résoudra la problématique car si l'utilisateur fait une modification il l'a fait dans le XML que ton getter renverra (donc forcément juste...) lorsqu'il clique sur enregistrer tu sauvegarde le XML en BDD et c'est terminé tu as donc 3 fonctions a coder : MonObjet->toXML(pour générer la couche XML); MonObjet->saveToDB (pour sauver l'objet en BDD); MonObjet->fromXML (pour récupérer le XML modifié)

++