header image/jpeg lange ladezeit?!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • header image/jpeg lange ladezeit?!

    Guten Morgen,
    ich habe mal wieder ein Problem, dass ich einfach nicht verstehe und hoffe auf Hilfe

    Ich habe meine Webseite erst neulich auf einen neuen Root umziehen lassen und mir ist aufgefallen, dass alle Bilder die mit GDLib generiert werden, sehr lange Ladezeiten haben. Das Bild wird sofort richtig generiert ausgegeben, allerdings erscheint im Firefox links unten immer, dass die Grafiken noch geladen wird und das dauert ca. 10-15 Sekunden. Natürlich habe ich auch andere Browser getestet und auch einen andere Rechner genommen und hatte selbes Problem.

    Sehr komisch fand ich allerdings die Tatsache, dass ich anschließend mit einigen Kollegen telefoniert habe und die dieses Problem nicht hatten, wobei ich den Fehler gestern noch auf meine Internetverbindung geschoben habe.

    Heute habe ich mit einem anderen Kollegen telefoniert, weil auch heute das Problem weiterhin bestand und auch er hatte eine sehr lange Ladezeit!

    Nun habe ich folgende Zeile aus meinem Script entfernt header("Content-type: image/jpeg");

    Eigentlich kann doch der Browser nichts mehr mit meinem Script anfangen und sollte nur noch Müll anzeigen, doch das Bild ist nun bei mir sofort da! Kann das an einer Erweiterung liegen die ich evtl. nachträglich im Apache installiert habe? Ich verstehe einfach nicht, wieso das Script bei mir auf dem Webserver läuft und wenn ich das Script bei einem Kollegen auf dem Webserver legen, nichts mehr geht?!

    Hat jemand eine Idee?

  • #2
    Guten Morgen,
    habe heute morgen noch etwas experimentiert und das ganze gestaltet sich doch etwas anders, als zuerst angenommen.

    Ich habe das Script fälschlicherweise auf dem falschen Server aufgerufen und somit wurde mein Bild auch richtig angezeigt.

    Natürlich bekomme ich auch Datenmüll, wenn ich das Bild direkt über mein php Script aufrufe. (z.B. /lib/preview.php?bild=test.jpg)

    Ist es den normal, dass wenn ich mein Bild über:
    <img src="/lib/preview.php?bild=test.jpg" />
    einbinde und in der preview.php keine header angaben mache, das der Browser mir trotzdem das Bild anzeigt? Wenn ja, frage ich mich wieso ich überhaupt header angaben machen muss? Denn ich möchte eigentlich auch nicht, dass ein User das Bild direkt aufruft.

    Denn ohne die Header Angaben
    header ("Content-Type: image/jpeg");
    ist mein Bild sofort da. Mit den Angaben braucht der Browser 10-15 Sek. vielleicht hat jemand eine Idee wieso es so ist, denn nicht jeder hat eine so lange Wartezeit?!

    Kommentar


    • #3
      Naja....
      Du hast dein Problem sehr schön beschrieben....
      Aber hältst sowohl den Code, als auch die URLs geheim.
      Wie soll man dann das Problem diagnostizieren?
      Wir werden alle sterben

      Kommentar


      • #4
        Ich kenne mich mit GDlib nicht aus, aber für mich hört sich das so an, als wenn der Browser aufgrund des Headers noch auf irgend etwas wartet, das signalisiert, dass das Bild vollständig geladen ist.
        Was weiß ich -- einen doppelten Zeilenumbruch oder vielleicht brauchst du noch einen Header der sagt wie groß das Bild ist oder so.
        Wer keine Arbeit hat, der macht sich welche
        XAMPP + NetBeans + XDebug(Xampp included) + SVN == FUN

        Kommentar


        • #5
          Hallo,
          habe mal das ganze auf meinen Testserver geladen und etwas dynamischer umgebaut.

          Mit Header
          Mit Header

          Ohne Header
          Ohne Header

          Mit Header lädt bei mir jeder Browser (IE8, IE7, Opera, FF, Chrome, Safari) an die 10-15 Sekunden, nur hat das Problem scheinbar nicht jeder! Das Bild ist mit Header bei mir auch sofort sichtbar aber mir FF steht links unten "Übertragen der Daten von www......" und das verzögert das nachladen der Javascripte auf meiner Webseite.

          Das Script schaut so aus
          PHP-Code:
          <?php
          if(isset($_GET['header'])) {
              
          header ("Content-Type: image/jpeg");
          }

          $bild $_GET['bild'];

          $neuesbild getimagesize($bild); 

          switch(
          $neuesbild["mime"]){
              case 
          "image/jpeg":     $effekt imagecreatefromjpeg($bild);    break; 
              case 
          "image/png":     $effekt imagecreatefrompng($bild);     break; 
          }

          if(
          $neuesbild[1] > $neuesbild[0]) {
              
          $neuehoehe $_GET['h'];  
              
          $faktor $neuesbild[1] / $neuehoehe
              
          $neuebreite round($neuesbild[0] / $faktor);     
          }
          else {
              
          $neuebreite $_GET['b'];  
              
          $faktor $neuesbild[0] / $neuebreite
              
          $neuehoehe round($neuesbild[1] / $faktor);     
          }    

          $thumb imagecreatetruecolor ($neuebreite$neuehoehe);
          #-- Weißen Hintergrund bei PNG, denn wenn transparent ist der BG schwarz
          if($neuesbild["mime"] == "image/png") {
              
          $bg imagecolorallocate $thumb255255255 );
              
          imagefill $thumb00$bg );
          }

          imagecopyresampled ($thumb$effekt0000$neuebreite$neuehoehe$neuesbild[0], $neuesbild[1]); 
          imagejpeg ($thumb''90); 
          imagedestroy ($thumb); 
          ?>

          Kommentar


          • #6
            Lädt beides einwandfrei auf Chrome und Firefox.
            Wer keine Arbeit hat, der macht sich welche
            XAMPP + NetBeans + XDebug(Xampp included) + SVN == FUN

            Kommentar


            • #7
              Genau das ist ja das Problem, bei den meisten gibt es keine Probleme! Habe mittlerweile mit 8 Kollegen telefoniert und nur bei einem trat selbes Problem wie bei mir auf.
              Habe mal ein kleines JavaScript eingebaut, dass ein altert Fenster öffnet, wenn das Bild geladen wurde.

              Ich könnte ja einfach den Header weglassen, aber gibt es da evtl. Probleme mit anderen Browsern?

              Kommentar


              • #8
                Mein Opera sperrt sich auch nicht.
                Wir werden alle sterben

                Kommentar


                • #9
                  Also es kommt sofort das Fenster mit der Meldung "Fertig geladen!"? Es dauert auch bei im Opera 15 Sekunden ....
                  Tracert und Ping zum Server sind in Ordnung, ein Browserproblem kann ich ausschließen und bei meiner Frau am Laptop mit einem anderen Betriebssystem macht selbes Problem.

                  Was mich ja echt wundert, dass Bild wird korrekt gefühlt unter einer Sekunde angezeigt, wenn da nicht die Ladezeit wäre die mein JavaScript blockiert ...

                  Vielleicht findet sich ja noch jemand, der selbes Problem hat ....

                  Kommentar


                  • #10
                    Zitat von Mundgeruch Beitrag anzeigen
                    Genau das ist ja das Problem, bei den meisten gibt es keine Probleme! Habe mittlerweile mit 8 Kollegen telefoniert und nur bei einem trat selbes Problem wie bei mir auf.
                    Habe mal ein kleines JavaScript eingebaut, dass ein altert Fenster öffnet, wenn das Bild geladen wurde.

                    Ich könnte ja einfach den Header weglassen, aber gibt es da evtl. Probleme mit anderen Browsern?
                    Probleme gibt es ohne Header auf jeden Fall, wenn das Bild nicht im <img> Tag steht.
                    Testen:
                    Mit rechts click auf Bild und dann Grafik anzeigen gibt nur Zeichensalat statt eines Bildes.


                    Mal davon abgesehen, dass du das Problem vielleicht gar nicht beeinflussen kannst...
                    Lass dir mal die Seiteninformationen anzeigen, vielleicht findest du da etwas.
                    Lade das Bild herunter und versuch es mit einem Grafikprogramm zu öffnen, vielleicht zeigt das Fehler an.
                    Nimm andere Bilder, andere Größen.

                    Oder vergiss das Problem einfach und denk dir, das liegt am WWW-Netzwerk, dem Provider, Routern, der Maus am Kabel, der Putzfrau die mal wieder grad den Stecker des Server-Racks für ihren Staubsauger raus gezogen hat...
                    Wer keine Arbeit hat, der macht sich welche
                    XAMPP + NetBeans + XDebug(Xampp included) + SVN == FUN

                    Kommentar


                    • #11
                      Zitat von Mundgeruch Beitrag anzeigen

                      Was mich ja echt wundert, dass Bild wird korrekt gefühlt unter einer Sekunde angezeigt, wenn da nicht die Ladezeit wäre die mein JavaScript blockiert ...
                      Dann ist das wohl eher der Grund:
                      http://ajax.googleapis.com/ajax/libs.../jquery.min.js

                      Lad mal das JQuery vom eigenen Server...
                      Wer keine Arbeit hat, der macht sich welche
                      XAMPP + NetBeans + XDebug(Xampp included) + SVN == FUN

                      Kommentar


                      • #12
                        Ne das habe ich gerade eingebunden, damit man genau sieht, wann das Bild fertig geladen wurde.

                        Habe es gerade geändert!

                        Aber ich bin nun etwas weiter! War gerade mit dem Laptop von meiner Frau, der selben Fehler machte bei meinem Nachbarn und dort war der Fehler nicht! Also liegt es an der Internetverbindung, aber wieso habe ich den Fehler nicht, wenn ich keinen Header nutze?

                        Kommentar


                        • #13
                          Zitat von Mundgeruch Beitrag anzeigen
                          Also liegt es an der Internetverbindung, aber wieso habe ich den Fehler nicht, wenn ich keinen Header nutze?
                          Vermutlich, weil der ISP der die Internetverbindung bereitstellt es schlicht und einfach verbockt …

                          Das ist nicht zufällig eine Mobilfunk-Verbindung? Gerade die Mobilfunk-Provider sind berüchtigt dafür, Inhalte die „größer“ sein könnten – also typischerweise Bilder – erst mal durch einen eigenen Proxy zu jagen und dort noch mal zu komprimieren, um Bandbreite und damit effektiv Kosten zu sparen.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Zitat von Mundgeruch Beitrag anzeigen
                            Ne das habe ich gerade eingebunden, damit man genau sieht, wann das Bild fertig geladen wurde.

                            Habe es gerade geändert!

                            Aber ich bin nun etwas weiter! War gerade mit dem Laptop von meiner Frau, der selben Fehler machte bei meinem Nachbarn und dort war der Fehler nicht! Also liegt es an der Internetverbindung, aber wieso habe ich den Fehler nicht, wenn ich keinen Header nutze?
                            Wahrscheinlich werden Bilder und Videos anders geroutet als Roh- oder Strukturdaten wie HTML.
                            Die Balancer sind doch heutzutage sowas von durch optimiert, das Sekundär-Daten wie eben diese Bilder und Videos auf die langsamen(billigen) Leitungen verschoben werden.
                            Das kann durchaus je nach Anbieter unterschiedlich sein. Wir sind bei T-Online und haben keine Probleme.
                            Frag mal deine Freunde, welchen Anbieter die haben.

                            Kann ja auch sein, dass einige Anbieter beim DNS-Service eine schlechte Zahlungsmoral/Tarif haben und deshalb in der Warteschleife ganz hinten stehen.
                            Weiß doch der Himmel, wie die sich das da zurecht mauscheln...aber für jeden Anbieter gleiche Qualität, das wäre das neueste
                            Wer keine Arbeit hat, der macht sich welche
                            XAMPP + NetBeans + XDebug(Xampp included) + SVN == FUN

                            Kommentar


                            • #15
                              Danke für eure Antworten, ich bin bei der Versatel und war eigentlich immer zufrieden - bis heute ....
                              Werde das ganze einfach jetzt Umprogrammieren, denn die Wartezeit kann ich keinem User zumuten.

                              Kommentar

                              Lädt...
                              X