Partage
  • Partager sur Facebook
  • Partager sur Twitter

Compression HTTP : ob_start("ob_gzhandler");

Sujet résolu
    26 décembre 2005 à 23:41:32

    Bonjour,

    J'ai lu dans pas mal de sites que la compression HTTP avec ob_start("ob_gzhandler"); était efficace.

    Mais est-ce que il y a des inconvénients ?

    Merci
    Au revoir
    • Partager sur Facebook
    • Partager sur Twitter
      26 décembre 2005 à 23:54:46

      Hum a priori non, car ca ne fonctionne que si le navigateur qui recoit les données supporte la compression ^^
      Ca bouffe un tout petit peu de ressource pour compresser quoi... et si tu gardes la page jusqu'au bout, il faut attendre qu'elle soit générée entièrement avant de l'envoyer!
      C'est tout ;)
      • Partager sur Facebook
      • Partager sur Twitter
        26 décembre 2005 à 23:57:38

        Citation : savageman

        et si tu gardes la page jusqu'au bout, il faut attendre qu'elle soit générée entièrement avant de l'envoyer!


        Euh .. :-° J'ai pas vraiment compris là .. ^^

        Merci de ta reponse sinon. ;)

        EDIT :

        Citation : savageman

        Ca bouffe un tout petit peu de ressource pour compresser quoi


        Euh ca me concerne pas ça moi ? Enfin je veux dire ça concerne l'hébergeur; ca ralentit pas mon site ?
        • Partager sur Facebook
        • Partager sur Twitter
          27 décembre 2005 à 0:13:09

          Oui, c'est l'hebergeur... Mais bon, si ca bouffe du proc, c'est plus lent... (mais c'est négligeable par rapport à la bande passante gagnée!)
          Sinon je suis pas sur, mais je crois qu'en principe, toute la page est générée avant d'envoyer les données compressées au navigateur... A confirmer cependant (exprimez vous les gens ^^)
          • Partager sur Facebook
          • Partager sur Twitter
            27 décembre 2005 à 11:49:35

            Bon attends je comprends plus là ...
            Grâce à cette méthode, ça va plus vite ? Ou ça va plus lentement ? ^^
            Parce que justement je cherchais surtout une astuce pour que mon site aille plus vite.

            Merci de tes réponses en tout cas ;)
            @+
            • Partager sur Facebook
            • Partager sur Twitter
              27 décembre 2005 à 11:55:50

              Apparement tu n'as pas l'air au courant donc je vais t'informer de ça : ob_start() sert surtout à pouvoir utiliser les header, setcookie et compagnie n'importe où dans le code, et pas seulement à compresser la page, ce qui a à mon avis un intérêt assez minime, moi je l'utilise uniquement pour pouvoir faire appel à ces fonctions n'importe où dans le code, c'est quand même moins casse-tête. :)
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                27 décembre 2005 à 11:56:28

                Plus vite. Tu perd un peut de temp pour générer la page avec php, mais tu en gagne baucoup pour l'envoiller ^^ (Si le navigateur ne suprote pas la compression, php ne fait rien, et au inal sa se passe comme si tu n'avais pas mit ob_start(), donc rien a craindre ^^)

                Sinon, j'ai vu un gas utiliser cette fonction pour "capter" des echo qu'il avais mit ans d'autre fichier.... une vrai oreur, la page mêtais plus de temp a être générer, et on perdais toute l'utilitée de cette fonction. C'est pourtent tèlement plus simple d'utiliser une fonction avec return. Donc, ob_start est surtut a utiliser pour bufferiser, voila. L'utilisation pour mêtre des header et cookie est en effet pratique, même si la meilleur solution consiste a s'arenger pour ne faire précèder d'aucun code html la page....


                Sinon, aulieu de faire un ob_start("gz_handler"), regarde du cotée de zlib_output, pas male d'heberjeur l'activent ^^ Dans ce cas utilise tout simplement ob_start() et php se charge de tout.
                • Partager sur Facebook
                • Partager sur Twitter
                  27 décembre 2005 à 12:26:46

                  Déjà merci de vos réponses. :)

                  Mon site est très chargé en requetes sql ..
                  Cela est du au fait que j'ai installé un mod PHPBB qui permet d'afficher les 5 derniers messages sur mon site.J'ai mis ce mod en deux fois sur mon site, et donc ca ralentit un peu.

                  Est-ce que la fonction ob_start() me permettra d'accélér mon site dans ce cas là ? Et niveau code elle n'aura pas d'inffluence ? Mon code restera inchangé ?

                  Merci d'avance pour vos futurs réponses. ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 décembre 2005 à 12:51:05

                    Citation : Ant


                    Mon site est très chargé en requetes sql ..
                    Cela est du au fait que j'ai installé un mod PHPBB qui permet d'afficher les 5 derniers messages sur mon site.J'ai mis ce mod en deux fois sur mon site, et donc ca ralentit un peu.


                    ?
                    Ca ne fait que deux requêtes ça, ce n'est pas vraiment ce que j'appelle "chargé"...
                    Après ça peut venir d'un peu partout, si on optimise le code par-ci, par-là, ça peut accélérer le chargement aussi. :)
                    Après, rien ne t'empêche de tester ob_start() pour voir si ça va plus vite hein, ton site ne s'auto-détruira pas si tu essayes. ;)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 décembre 2005 à 12:54:34

                      Ouep c'est pas bête.. :D
                      Je vais essayer ^^

                      EDIT :J'ai essayé mais je ne vois pas tellement de différence..Pourtant quand je teste sur cette page :
                      http://www.philiweb.com/accueil.php?num=26
                      La différence de poids est grande.
                      Mais j'ai entendu dire que c'était visible que par les bas-débits ? Donc c'est normal que je ne voye pas de différence en étant en 1024 ?

                      Merci d'avance pour vos reponses.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        27 décembre 2005 à 13:19:47

                        Tu ne constateras la diférence qu'avec des pages TRES grandes.
                        Une bonn e idée pour tester l'effet :

                        <?php
                        //ob_strart();
                        for($i =0; $i < 15 000; $i++)
                          echo "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
                          //Soit 26 * 15 000 octées
                        //ob_flush(); // Je suis plus bien sur du nom de la fonction.
                        ?>
                        • Partager sur Facebook
                        • Partager sur Twitter
                          27 décembre 2005 à 13:53:27

                          Heu si tu met ob_start() sans compression, ca sert à rien... (enfin si, a pouvoir mettre des headers partout, mais c'est mieux de bien concevoir son script pour que ca marche partout, même si tu ne peux pas mettre de bufferisation...)
                          Et si le navigateur en face ne gère pas la compression, autant ne pas lui mettre de bufferisation: il recevra les données au fur et a mesure et ne sera pas obligé d'attendre que la page soit générée completement pour tout avoir ^^
                          Apres, pour détecter si le navigateur gère ou non, c'est dans $_SERVER['ACCEPT_ENCODING'] ou un truc dans le genre: il faut qu'il y ait: gzip dedans!
                          • Partager sur Facebook
                          • Partager sur Twitter
                            27 décembre 2005 à 13:57:07

                            D'accord, merci à tous pour vos réponses qui m'ont bien aidé à comprendre ;)

                            Encore merci et bonne journée. :)
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              30 décembre 2005 à 1:04:39

                              Sisi, sa sert le gz_hanler() a condition d'avoir activer dans php.ini zlib_output. Voila a quoi sa ser ^^
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Compression HTTP : ob_start("ob_gzhandler");

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown