switch() gourmand ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : switch() gourmand ?

par lux » 08 déc. 2008, 18:49

Merci pour cette précision que je n'avais pas mentionné :oops:

par chrislabricole » 08 déc. 2008, 18:47

L'avantage du switch si je me souviens bien, une fois qu'il à fini le cas, il ne continue pas de chercher.
Si il y a le
break;
:P

par lux » 08 déc. 2008, 18:44

L'avantage du switch si je me souviens bien, une fois qu'il à fini le cas, il ne continue pas de chercher. Donc normalement c'est optimisé 8-)

par VaN » 08 déc. 2008, 16:07

Alors en effet, je viens de faire quelques tests, et il semblerait que ce ne soit pas le switch() le problème, mais un appel javascript un peu plus haut dans la page (pour changer l'apparence d'un <select>).

Problème résolu donc. Merci à vous.

par yaug » 08 déc. 2008, 15:58

bonjour à toi.
Je ne pense pas dire de bêtises (on sait jamais) mais le switch est une fonction plutôt optimisée qui ne prend pas trop de temps.
Ca me semble assez bizarre que cela te prenne du temps.
Le ralentissement ne viendrait pas plutôt de l'include ? (genre gros fichier bien long ?) :D
Au pire utilies un benchmark pour voir le temps d'affichage des includes.

par AB » 08 déc. 2008, 15:58

Tu pourrais éventuellement remplacer ton switch par un tableau, mais à part faciliter la maintenance il ne devrait pas y avoir de différence significative au niveau du temps de traitement surtout pour un si petit nombre de cases. Ton pb ne vient certainement de ton ton switch mais de ce que tu inclus.

switch() gourmand ?

par VaN » 08 déc. 2008, 15:47

Bonjour à tous,

J'ai un fichier index.php, qui utilise un système d'include() pour afficher bannière, menu, contenu, footer.

Voilà comment se passe mon affichage de contenu :
<div class="right">
        	
            <?php
		
			isset($_GET['module']) ? '' : $_GET['module'] = 'home';

			switch($_GET['module']) {
			
				case 'home' :
					include 'includes/mod.promotions.php';
					include 'includes/mod.nouveautes.php';
					break;
				case 'register' :
					include 'includes/mod.register.php';
					break;
				case 'activate' :
					include 'includes/mod.activate.php';
					break;
				case 'retrievePassword' :
					include 'includes/mod.retrievePassword.php';
					break;
				case 'createAnnonce' :
					include 'includes/mod.annonces.create.php';
					break;
				case 'displayAnnonce' :
					include 'includes/mod.annonces.display.php';
					break;
				case 'buyAnnonces' :
					include 'includes/mod.annonces.buy.php';
					break;
				case 'compte' :
					include 'includes/mod.monCompte.php';
					break;
				case 'profile' :
					include 'includes/mod.profile.php';
					break;
				case 'alertes' :
					include 'includes/mod.alertes.php';
					break;
				case 'page' :
					include 'includes/mod.pages.php';
					break;
				case 'factures' :
					include 'includes/mod.factures.php';
					break;
				case 'partenaires' :
					include 'includes/mod.partenaires.php';
					break;
				case 'search' :
					include 'includes/mod.search.php';
					break;
				case 'contact' :
					include 'includes/mod.contact.php';
					break;
}
			?>
            
         </div> 
Mon problème est qu'au moment du chargement de la page, il y a clairement un temps d'attente, au moment du switch(). Switch() est-elle une fonction gourmande ? Existe t'il un moyen d'optimiser ce bout de code ?