Ankündigung

Einklappen
Keine Ankündigung bisher.

Seiten statisch erstellen und bearbeiten

Einklappen

Neue Werbung 2019

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

  • Seiten statisch erstellen und bearbeiten

    Hallo,

    ich programmiere nun schon länger in PHP stehe aber jetzt vor einer neuen Herausforderung. Ich muss eine große Seite komplett umschreiben - es handelt sich um mehrere zehntausend Datenbank-Einträgen sowie 50.000-60.000 Seitenzugriffen pro Tag (laut Google Analytics). Ich habe an der Datenbank schon einiges verbessert bin aber noch auf der Suche nach Performanceschüben - da ist mir eine Idee in denn Sinn gekommen.

    Bisher ist es so, dass je Seite quasi dynamisch neu aufgebaut wird - das funktioniert auch sehr gut und ist auch recht schnell (Ladezeiten von 0,01 - 0,50 Sekunden). Da aber (derzeit) jeder User mehrere Datenbankanfragen (pro Seite) tätigt sollte ich das vielleicht mal auslagern.

    Meine Idee: Mir ist schon klar, dass diese Idee viele haben und auch umsetzen - daran scheitert es aber. Ich weiß nicht wie ich es umsetzen soll.

    Mal angenommen es gibt 2000 Unterseiten wo dynamisch Informationen bereitgestellt werden (die jeder User durch eine Datenbank-Abfrage angezeigt bekommt). Ich möchte jetzt für jede dieser 2000 Unterseiten einzelne statische (HTML?)-Dateien erstellen, so dass ich für jede Seite der Inhalt bereits in der Datei enthalten ist (statisch) und nur diese Datei geöffnet wird statt immer Datenbankabfragen zu starten bzw. es dynamisch zu gestalten. Sobald in der Datenbank Einträge verändert werden, werden dann auch die statischen Seiten erneuert - bis zur nächsten Änderung.

    Google zeigt mir immer Templates (die ich nie benutzt habe aber Interesse habe diese zu verwenden). Ich sehe allerdings in Templates nur den Vorteil, dass man Programmierung vom Style trennt - wie Teamplates mir jetzt aber bei meiner Idee helfen sollen bekomme ich nicht in meinen Schädel.

    Für Tipps wäre ich euch sehr dankbar.

    Es ist doch für Datenbank, Server und Ladezeiten besser wenn die User statische Seiten laden statt dynamische die immer wieder Datenabfragen stellen. Oder sehe ich das falsch?

    Gruß,
    eetZ


  • #2
    Wenn du Datenbankabfragen vermeiden möchtest, könntest du ja einfach diese Cachen anstatt die ganze Seite.
    Bei Zend ist es ziemlich gut gemacht, könntest du dir ja mal anschauen Zend_Cache.
    IMHO sehe ich eigentlich keinen Sinn darin ganze Templates zu cachen.
    "My software never has bugs, it just develops random features."
    "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

    Kommentar


    • #3
      Hallo eetZ,

      die Frage, die du dir stellen musst ist: "Welche Teile/Bereiche der Seite müssen wie aktuell gehalten werden?". Diese Frage kann man mit einer klaren Antwort oder mit einer bedingten Antwort belegen. Im ersten Fall, kannst du einfach das Generat auf Platte Speichern (ob mit Zend_Cache oder was auch immer ist zunächst egal), im zweiten Fall solltest du darüber nachdenken, das Generat der relevanten Bereiche auf Platte zu cachen. Dann aber jeweils mit den Aktualitäts-Anforderungen an den Bereich.

      Um diesen Ansatz auch Code-technisch sinnvoll abbilden zu können, ist zusätzlich zu den Überlegungen eine Komponente notwendig, die die Anfrage entsprechend handhabt. Fall 1 ist dabei sehr einfach abzubilden, Fall 2 etwas kniffliger. Aber auch dafür gibt es Lösungen.

      Zusätzlich dazu solltest du bei der Anzahl an Requests Client-Caching nutzen - insbesondere für Bilder und quasi-statische Dateien.
      Viele Grüße,
      Dr.E.

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      1. Think about software design before you start to write code!
      2. Discuss and review it together with experts!
      3. Choose good tools (-> Adventure PHP Framework (APF))!
      4. Write clean and reusable software only!
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      Kommentar


      • #4
        Zum thema Template-Caching könntest du dir mal Smarty aneignen, wobei, wie dr. e schon gesagt hat musst du dir klaren sein wie aktuell deine Informationen auf den Seiten sein sollen ... bei Smarty kann man jedoch einstellen, wie lang die Lieftime des Caches sein soll ... noch dazu könntest du den Mysql Cache aktivieren um schnellere Datenbank abrufe zu machen ...
        PHP-Code:
        if ( $humans >= ) {
           
        war ();

        Kommentar

        Lädt...
        X