Probleme mit auto-refresh

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

  • Probleme mit auto-refresh

    Hallo, meine Seite lädt ständig feeds nach, so dass ein auto-refresh (alle 5 Minuten) sinnvoll erscheint. Ich habe dazu den Meta-tag so geschrieben:

    HTML-Code:
    <meta http-equiv="refresh" content="600; URL=http://testseite.de/index.php">
    Neuerdings wird ständig ein Seitenladefehler beim refresh angezeigt. Woran könnte das liegen?

    Gruß und Dank
    newbie1955

  • #2
    Seitenladefehler heißt was?

    Kommentar


    • #3
      Seitenladefehler

      heißt, dass statt des Re-Freshs mit meiner Seite eine Seite kommt, auf der steht, dass es einen Seitenladefehler gibt, der verhindert, dass die Seite noch einmal geladen werden kann.

      Jetzt habe ich hier zufällig gerade mal den Text:

      Fehler: Verbindung unterbrochen







      Die Verbindung zum Server wurde zurückgesetzt, während die Seite geladen wurde.





      Die Website könnte vorübergehend nicht erreichbar sein, versuchen Sie es bitte
      später nochmals.
      Wenn Sie auch keine andere Website aufrufen können, überprüfen Sie bitte die
      Netzwerk-/Internetverbindung.
      Wenn Ihr Computer oder Netzwerk von einer Firewall oder einem Proxy geschützt wird,
      stellen Sie bitte sicher, dass Firefox auf das Internet zugreifen darf.
      Zuletzt geändert von newbie1955; 23.01.2013, 20:21.

      Kommentar


      • #4
        Gehts ein wenig genauer? Welcher HTTP Status Code?

        Kommentar


        • #5
          Kein Statusscode

          Ich habe den kompletten Text der Fehlermeldung zitiert, kein Statuscode vorhanden

          Kommentar


          • #6
            Da Du mit Deinem Script mehr als eine Seite ausliest und die Ladezeit extrem langsam dadurch ist, wird es zu einer Zeitüberschreitung kommen. Außerdem wurde ich mit Deinem Script auch geblockt, wenn ich keinen User Agent sendete.

            So richtige kenne ich mich damit auch nicht aus, doch denke ich, Du müsstest die Request so verteilen, dass da mehr gleichzeitig läuft und überall einen User Agent mitsenden. Eventuell noch unter wechselnden IPs oder so, damit Dein Script nicht geblockt wird. Weiterhin müsste Dein Script Anfragen bei Nichterreichbarkeit überspringen, also alle Web-Adressen bei allen Request auf Erreichbarkeit prüfen.
            Zuletzt geändert von Melewo; 24.01.2013, 11:31.

            Kommentar


            • #7
              Ladezeit

              Danke für die Antwort. Tja, die Ladezeit ist wirklich sehr lang (zu Hause bei mir mit einem schnelleren Rechner tritt der Fehler aber auch nicht auf.). Ich habe schon überlegt, ob man den Seitenaufbau "splitten" könnte, denn die feeds, die als erste kommen, sind ja auch die wichtigsten. Aber wie man eine Seite portionsweise lädt, weiß ich nicht. Auch mit User Agent kenne ich mich nicht aus, da muss ich mich mal einlesen. Ebenso "unter wechselnde IPs" arbeiten...

              Tendenziell sollen es ja sogar noch mehr feeds werden....

              Falls Dir noch andere Möglichkeiten zum "Beschleunigen" einfallen, bin ich dankbar.

              Kommentar


              • #8
                Eine Alternative wäre meiner Meinung nach, Du lädst die Seite nicht komplett, sondern holst jede einzelne Antwort per Ajax nach. Somit sollte Deine Seite erst einmal geladen werden und Du würdest sehen, wer nicht antwortet oder von wem Deine Anfragen geblockt werden oder wer mit den Antworten am meisten trödelt.

                Außer xml und favicon blocke ich auch alle Anfragen per htaccess, die keinen User Agent mitsenden.
                Code:
                RewriteCond %{HTTP_USER_AGENT} ^$
                RewriteRule .* - [F,NS,L]
                Da der Apache von sich aus keine Agents durchreicht, kannst Du den aktuellen mitsenden:
                PHP-Code:
                <?php
                $Agent 
                strip_tags($_SERVER["HTTP_USER_AGENT"]); 
                $Agent preg_replace("/[^a-zA-Z0-9.,:;()\/+]/"" "$Agent); 
                 
                if (isset(
                $Agent) and !empty($Agent)) {

                ini_set("user_agent"$Agent); 

                ?>
                Leere User Agents sperren und eigenen User Agent senden

                Außerdem solltest Du mit Cache arbeiten und wenn da als Statuscode etwas anderes als 200 oder 301 kommt, die letzten Ergebnisse aus dem Cache laden. Alle 10 Minuten anzufragen, obwohl sich möglicherweise nur 2-mal täglich etwas ändert, halte ich ohnehin für zu viel des Guten.
                Zuletzt geändert von Melewo; 24.01.2013, 13:08.

                Kommentar


                • #9
                  User agent und Cache

                  Hallo, Danke für Deinen Code, aber wie so oft verstehe ich noch nicht, wozu das Ganze gut ist. Wenn Du mir den noch mal erklären könntest, wäre ich dankbar, sonst googel ich mir auch durchaus die Wissenslücken zusammen.

                  Mit Ajax kenne ich mich auch noch nicht aus.

                  Zum Cache: Den hatte ich eigentlich bei magpie angeschaltet. Nur merkwürdigerweise hat er immer bei einem der abgerufenen feeds ständig nur aus dem Cache geladen, selbst wenn inzwischen etwas Neues da war, während alle anderen feeds korrekt neu abgerufen wurden. Es sind übrigens aktuelle Nachrichten, so dass sich wirklich alle paar Minuten was ändert. x-mal am Tag.

                  Gruß
                  newbie1955

                  Kommentar


                  • #10
                    Zitat von newbie1955 Beitrag anzeigen
                    Hallo, Danke für Deinen Code, aber wie so oft verstehe ich noch nicht, wozu das Ganze gut ist.
                    Ist eigentlich ganz einfach, Du rufst im Browser Deine Seite auf, wobei Dein Browser einen User Agent an den Server übermittelt. Den liest Dein Script mit $_SERVER["HTTP_USER_AGENT"] aus und überredet mit ini_set() Deinen Server dazu, diesen an den Server zu senden, an dem Dein Script eine Anfrage stellt. Wenn Du es nicht tust, so bedankt sich Dein Server nur für den von Deinem Browser erhaltenen User Agent, ohne aber selbst einen an den Server zu übermitteln, der die Anfrage beantworten soll.

                    Las mal etwas davon, dass es schon Hacking-Versuche gab, bei denen versucht wurde mit Hilfe von verseuchten User Agents Schadcode zu verbreiten. Also lieber mit strip_tags und preg_replace doppelt filtern, es ist sonst Dein Server oder der mit Deinem Webspace, der einen verseuchten User Agent durchreicht und sendet.
                    Zuletzt geändert von Melewo; 24.01.2013, 17:56.

                    Kommentar


                    • #11
                      Ajax

                      Danke für die Erklärung - und was rätst Du mir in Sachen AJax? Nach und nach aufrufen der feeds scheint mir sehr hilfreich, aber reicht dazu nach Ajax googlen aus? Oder hast Du einen Tipp?

                      Kommentar


                      • #12
                        Wenn Du nach - Ajax Tutorial - suchst, solltest Du genügend Beispiele für einen einfachen Einstieg finden. Problem dabei, Du müsstest so ein Script dann entsprechend ausbauen und mit bescheidenen Grundkenntnissen stößt Du schnell an Grenzen. Ich habe auch nichts zu liegen, was der Aufgabenstellung nahe käme.

                        Kommentar


                        • #13
                          PHP-Code:
                           <?php
                          $Agent 
                          strip_tags($_SERVER["HTTP_USER_AGENT"]); 
                          $Agent preg_replace("/[^a-zA-Z0-9.,:;()\/+]/"" "$Agent); 
                           
                          if (isset(
                          $Agent) and !empty($Agent)) {

                          ini_set("user_agent"$Agent); 

                          ?>
                          Muss ich das zum Beginn des PHPs in meine feedholen function einbinden? Oder jedesmal vor Aufruf der function.Gleiche Frage zu dem Blocken:
                          PHP-Code:
                          RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule .* - [F,NS,L

                          Kommentar


                          • #14
                            Zitat von newbie1955 Beitrag anzeigen
                            Muss ich das zum Beginn des PHPs in meine feedholen function einbinden?
                            Ja, gleich zu Beginn.

                            Zitat von newbie1955 Beitrag anzeigen
                            Gleiche Frage zu dem Blocken:
                            Nein, das solltest Du nicht nehmen!

                            Das ist aus der htaccess, um die eigenen Seiten etwas vor mit Scrapern und Hackingtools spielenden Kindern zu schützen, die noch nicht wissen, dass sie einen User Agent mitsenden müssen. Hatte mal innerhalb von Stunden um die 10.000 Aufrufe ohne User Agent, ging im Sekundentakt, seither füge ich das und noch einen weiteren Schnipsel überall mit ein. Wer ein wenig gelernt hat, der fälscht dann einen User Agent und täuscht einen Referrer von Google vor, davor schützt das dann nicht mehr.

                            Kommentar


                            • #15
                              AJax und Bilder

                              habe ich eingebaut.

                              Aber ich denke, bevor ich mit Ajax herumexperimentiere, werde ich erstmal so einfache sachen machen wie alle meine Logos auf die richtige Größe bringen, damit das beim Seitenaufbau nicht noch skaliert werden muss. ...

                              Kommentar

                              Lädt...
                              X