BUG quand mon php est intégré dans un div en CSS - PHP - Programmation
Marsh Posté le 09-12-2005 à 15:05:31
Code :
|
Marsh Posté le 09-12-2005 à 15:08:54
mais c'est quoi cette manie de faire du html dans le php et mettre des <? partout, c'est illisible
Donc mets ton code html dans une chaine que tu vides à la fin Ca sera plus lisible, et tu gagneras en temps d'exécution
Sinon c'est exactement le même code qui marche si t'enlève simplement le div??
Marsh Posté le 09-12-2005 à 16:11:06
leflos5 a écrit : mais c'est quoi cette manie de faire du html dans le php et mettre des <? partout, c'est illisible |
tu peux expliquer un peu plus ca m'interesse cette histoire de chaine et vider a la fin
Marsh Posté le 09-12-2005 à 16:19:16
Code :
|
Marsh Posté le 09-12-2005 à 16:21:49
bah en fin de compte question lisibilité et reprise du code je suis pas sure que ca soit mieux, même si c'est peut etre plus rapide question traitement
Marsh Posté le 10-12-2005 à 03:08:24
saxgard a écrit : bah en fin de compte question lisibilité et reprise du code je suis pas sure que ca soit mieux, même si c'est peut etre plus rapide question traitement |
Si t'écris bien le html en indentant, c'est plus clair pour moi MAis t'as aussi le droit de faire
Code :
|
Plus rapide et pas qu'un peu si t'utilises pas de tampon, parce que sinon le serveur envoit à chaque fois, attendant le traitement, renvoit, un bout, réattend... et au final sur une page qui en local prend 0.05s de traitement, avec du 512 en réception pour le client et du 128 en envoit pour le serveur (test fait) t'as 10s sur le client mais du coup autant de temps où le serveur bosse sur le serveur Avec un tampon, qu'il soit artificiel (mon truc) ou non (gandzler, zlib...) tu tombes à moins d'0.5s
Cet exemple vallait pour un script avec pas mal d'accès à la BD car pas mal de petites requêtes mais sur un BD très petite pourtant et un serveur en idle
Donc le php dans l'html c'est bof, c'est illisible pour moi et au delà de ça c'est une erreur de conception assez irrationnelle...
Marsh Posté le 10-12-2005 à 04:02:02
leflos5 a écrit : mais c'est quoi cette manie de faire du html dans le php et mettre des <? partout, c'est illisible |
C'est sûr.
leflos5 a écrit : Donc mets ton code html dans une chaine que tu vides à la fin Ca sera plus lisible, et tu gagneras en temps d'exécution |
En théorie, non, faut pas dire n'importe quoi non plus parce que ça nous plais pas.
Marsh Posté le 10-12-2005 à 05:24:45
The-Shadow a écrit : C'est sûr. |
La théorie c'est pour le temps d'éxécution Parce que vérifie mais pas avec un temps réseau de 0.0001s
En gros en local ça change rien, mais tu peux pas faire un plan sur la comète de la connexion du client, et même si dans un cas précis tu la connais et que ça nécessite pas de prendre soin de ça, c'est pas une raison pour faire le cochon
De toutes manière le traitement étant indépendant de l'affichage, le soucis se pose pas
Et juste un détail que j'ai reprécisé après, en utilisant un tampon, ok ça change rien, mais c'est toujours autant caca, illisible et un fichier php "fait" du php pas du html Donc faire un fichier php pour avoir 3 instructions php et que du html...
C'est pas question d'aimer ou pas, c'est que si on a besoin de faire
Code :
|
c'est top en lisibilité et raisonnement... C'est aussi logique que si j'essayais d'enlever ma roue après avoir dévissé 1 boulon boulon sur les 4
Faut pas mélanger torchon et chiffon Si on fait du php c'est que y'a besoin de traitement, si y'en a pas besoin... c'est du html pur
Maintenant le php permet de générer du html après traitement donc faut bien intégrer ça d'une manière ou d'une autre, sauf que le php permet de faire du html dynamique, pas l'inverse... Juste question de logique vu que ça change rien en terme de perf (sauf que le serveur http danse la java avec du php intégré au html et pas l'inverse ).
Donc pour moi dans la logique de fonctionnement de tout ça, je traite et je ponds, pas je ponds, je traite, je ponds, je traite...
Parce qu'autant tu peux gérer le tampon de sortie de php, autant gérer le tampon de sortie d'un serveur web Donc faire:
Code :
|
Ou
Code :
|
même combat, le débit du serveur ou client est limité ça foire... Et considérer que la BP sera toujours suffisante est une erreur Que ça soit dans un sens ou l'autre Et les proxies jouent bien leur role tant que y'a de la BP, donc me sors pas que t'as testé avec ton >2Mb
En les perf je m'en tamponne un peu dans ce débat, juste qu'on perd du temps inutilement en faisant un code pourri Et que ça va quand on a les ressources mais beaucoup d'entre vous devraient tester sur un bon serveur (pour négliger le temps de traitement) mais avec une pauvre connexion de pd2povre des 2 côtés C'est instructif et ça rend humble (pour qui a une conscience autre que la longueur d'un bit )
Marsh Posté le 10-12-2005 à 05:32:53
C'est bien beau ton grand discours, mais tu as tort, c'est tout.
Oui, le code est dégueulasse, ça c'est vrai et c'est un argument qui se suffit à lui même, pas besoin de sortir des anneries comme "c'est plus rapide". Non seulement c'est moins rapide, mais en plus, ça bouffe de la mémoire inutilement.
Marsh Posté le 11-12-2005 à 01:36:57
The-Shadow a écrit : C'est bien beau ton grand discours, mais tu as tort, c'est tout. |
Je te dis que c'est plus rapide, tampon ou chaine, si y'a des gros traitements qui prennent du temps (style bd le meilleur exemple)
J'ai pas dit qu'en soit c'est plus rapide, ça l'est si le script envoit par morceaux et doit attendre entre 2
Maintenant pour la mémoire, certes, mais à la limite bouffer 1% de plus et gagner 10% de temps, au final le taux d'occupation est inférieur Mais bon je fais juste partager ce que j'ai déjà testé malgrès moi Si tu veux pas te remettre en question et au moins vérifier ça me regarde pas
Marsh Posté le 11-12-2005 à 10:44:14
Listing 1 : Ta solution plus rapide, sauvegarde du texte html dans une variable.
Code :
|
Listing 2:Ma solution plus rapide, inclusion directe du HTML.
Code :
|
Bench 1, solution 1 : http://orolam.online.fr/hfr/test/bench.php
Bench 2, solution 2 : http://orolam.online.fr/hfr/test/bench2.php
Voilà, testé sur 3 serveurs différents, le résultat est sans appel, TA super solution est 2 fois plus lente que la mienne en temps de génération, pour quelqu'un qui a soit disant testé en situation, je me demande bien sur quoi.
Tu vas me dire "Ouai gnignin, tu bufferises", bah oui, j'ai jamais dit le contraire, mais c'était pas ça le problème, c'était enregistrement d'une chaine plutot qu'inclusion d'HTML, là, c'est clair, t'as qu'à transférer les benchs sur tes propres serveurs tu verras.
Marsh Posté le 12-12-2005 à 04:13:51
The-Shadow a écrit : Listing 1 : Ta solution plus rapide, sauvegarde du texte html dans une variable.
|
Mais c'est grave là, faut apprendre à lire
Je te parle pas que de chaine seule, j'ai dit qu'avec un tampon ça marche mieux...
Maintenant faut aussi prendre en compte la machine comme la connexion
Si t'as une brêle avec de la RAM à plus en pouvoir pour le truc, le facteur limitant est pas la RAM.
Si t'as une bête course mais pas de RAM bah vaut mieux calculer que stocker.
Si t'as 128Kb en emmision mieux vaut cacher.
Bref si tu te tires les mamellons sur des machines n'ayant aucune de ces contraintes (cpu, Ram, émission) oui continues à te caresser sans te remettre en cause Apprends juste à lire et rajoutes moi un traitement entre les chaines (pas un autre echo hein )
Mais si tu testes sur un serveur pas limité en perf mais avec un upload plus que le donwload du client c'est la cata...
M'enfin l'adolescence n'a pas de limite d'âge que celle où on arrête de se tirer sur la queue pour l'allonger
Murphy et la confiture aident parfois aussi à comprendre J'ai donné un ca particulier, expliqué si tu sais pas lire parce que Môsieu est un grand de la cat php, j'abdique Amen, Alleluia
MAis si au passage Môsieur n'a pas une formation sientifique éprouvée, je lui déconseille de faire des stats vu qu'apparement il sait pas isoler les paramètres
Mais je parlais d'envois sans tampon (parle français moi, je bufferise pas je tamponne ) donc si tu me fais ton teste qu'avec des tampons... La rigueur SVP, la rigueur...
Edit: au cas où, je parle pas de gagner 0.2s mais en perdre 10 (de secondes ) Et puisque Môsieur bosse qu'avec des connexion de fou, dès que je peux (physiquement parlant) je te montre ce que ça donne parce qu'Apache c'est caca prout pour moi je sais pas comment limiter la BP (si c'est possible) et je veux même pas savoir )
Marsh Posté le 12-12-2005 à 11:49:41
Tu es ridicule.
Citation : Donc mets ton code html dans une chaine que tu vides à la fin Ca sera plus lisible, et tu gagneras en temps d'exécution |
Voilà, c'est ce que tu as dis et c'est ce que je refute et c'est vrai, que ça te touche dans ton orgueil d'ado ou pas, c'est comme ça.
Après, pour le reste, les longs discours pour échapper au ridicule, passons...
Marsh Posté le 13-12-2005 à 12:30:29
numa1985 a écrit : Quand je met ma page PHP qui affiche par exemple mes 3 dernieres actus, la bd foire, alors que toute seule, la page marche trés bien. |
Bon, on va laiser tomber la méga discution autement phylosophique pour poser les question terre à terre de base :
C'est quoi qui décone?
T'as un message d'erreur?
T'as un affichage qui affiche rien?
T'as regardé dans le source de la page si tout été écrit?
C'est quoi le code de la page qui merde et le code de la page qui marche?
...
PS : On véra plus tard pour les autres questions.
Marsh Posté le 09-12-2005 à 15:00:59
Quand je met ma page PHP qui affiche par exemple mes 3 dernieres actus, la bd foire, alors que toute seule, la page marche trés bien.
mon code PHP:
<?php
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('cisteme', $base);
$sql = 'SELECT idActualite, titreActualite, auteurActualite,dateActualite, contenuActualite, estValideeActualite FROM actualites ORDER BY dateActualite DESC';
$req = mysql_query($sql);
$nb_actualite = mysql_num_rows($req);
if ($nb_actualite == 0)
{
echo 'Aucune actualite dans la base....';
}
else
{
$req2 = mysql_query($sql);
$i=3;
while ($conteur=mysql_fetch_array($req)and(($i!=0)))
{
?><center><?php
$data =mysql_fetch_array($req2);
if (($data['estValideeActualite']) == 1)
{
?>
<a href="./voir_actu.php?id=<?php echo $data['idActualite'] ?>">
<div id="actu"><b><center>
<?php
echo $data['titreActualite'];
$i=$i-1;
?>
</div><a/></b></center></div>
<?php
}
}
}
// on libère l'espace mémoire alloué pour cette requête
//mysql_free_result($req);
// on ferme la connection à la base de données.
mysql_close ();
?>
MERCI de votre aide.