Denkanstoß "dynamisches Cachen"

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

  • Denkanstoß "dynamisches Cachen"

    Hallo

    Folgendes Problem: Ich lasse eine Seite in gewissen Abständen cachen, um die Datenbankzugriffe zu verringern und die Auslastung der Datenbank im Zaum zu halten.

    Jetzt gibt es auf der Seite aber verschiedene Zugriffsrechte. User können Comments verfassen und ihre eigenen editieren, Moderatoren können alle editieren und auch löschen, Admins können User bannen und so weiter, eine normale Communityverwaltung eben.
    Die entsprechenden Optionen befinden sich als Links unter jedem einzelnen Beitrag eines Users. Ist ein Comment unangebracht, kann ein Mod es gleich per Klick auf den link löschen.

    Wenn man die Seite nun aber cached, sehen die normalen User auch die Links fürs bannen und löschen, das Cachen erzeugt ja eine HTML-Seite für alle.
    Bemerkung: Es geht nicht darum, dass normale User nun den Ban-Link sehen und damit herumspielen, falls die darauf klicken wirds natürlich durch das Rechtesystem abgefangen! Das ganze ist eher optischer Natur, ein Schönheitsfehler eben.
    Am besten wäre es, wenn jede Benutzergruppe nur die für sie relevanten Optionen angezeigt bekommt.

    Man könnte für jede Gruppe eine eigene Seite cachen, in der die passenden Links angezeigt werden. Allerdings funktioniert dies bei der untersten Usergruppe nicht, denn diese sollen ja nur bei ihren eigenen Beiträgen den Editier-Button finden, nicht auch bei den anderen Usern. Cached man aber die Seite, hätte jeder User auch bei fremden Beiträgen den Editierlink.

    Wie könnte man also, ohne weiter Performance zu rauben, so lösen, das jeder User trotz Caching nur unter seinen eigenen Beiträgen Editier-Links findet?


    mfg

  • #2
    Die Datenbank dahingehend optimieren, dass sie an einem
    SELECT * FROM comments WHERE beitrag_id=x LIMIT 10
    nicht verreckt...

    Also ich persönlich würde so einen scheiß nicht cachen...
    ggf. kann man über HTTP-Header cachen, dann hat man solche Probleme nicht, aber serverseitig so enorm zu cachen ist doof

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Re: Denkanstoß "dynamisches Cachen"

      Original geschrieben von INC.
      Wie könnte man also, ohne weiter Performance zu rauben, so lösen, das jeder User trotz Caching nur unter seinen eigenen Beiträgen Editier-Links findet?[/B]
      Bau die User- oder Gruppen-ID mit in die Cache-ID ein.
      Statt wie bisher einmal die Seite "thread:x" hast du dann viele "thread:xgid}uid}" im Cache.
      Zuletzt geändert von onemorenerd; 10.08.2007, 00:30.

      Kommentar


      • #4
        je nachdem wie deine software aufgebaut ist würd ich mir eher überlegen, user und gruppen zu cachen, z.b. mit hilfe eines memcached.
        MfG
        aim
        Lies mich jetzt!
        - OT-Tags-Liebhaber und BB-Code-Einrücker -

        Kommentar

        Lädt...
        X