• Hallo Besucher!

    Du bist neu im Forum? Dann registriere dich hier, um Diskussionen beizutreten oder eigene Themen zu erstellen. Für die Registrierung ist es erforderlich, dass du einen Spielaccount bei Die Stämme hast.

    Andernfalls kannst du dich hier direkt einloggen.

    Falls du dein Passwort vergessen hast, kannst du hier ein neues Passwort anfordern.

[PHP] Dynamische Seite bleibt gleich

DeletedUser

Gast
Moin Jungs & Mädels.

Nein, mein Problem ist nicht, das was ihr denkt. Sondern, dass die Seite einfach nicht neu geladen wird, wenn ich z.B. auf der Seite index.php bin und dann auf einen Link klicke, der auf die gleiche Datei (in dem Beispiel index.php) verlinkt. Die Seite verändert sich dann erst, wenn man F5 drückt.

Das Problem tritt auf, seit dem ich anstatt Funktionen Arrays verwende (z.B. statt $rcms->users('uid') $rcms->users['uid']). Warum? Performance.

Damit ihr euch vorstellen könnt, was ich meine, hier ein Link: https://falkenauge.homeftp.net/rcms/ (SSL damit ihr eure Daten nicht an den Staat abliefert.)

Falls ihr kein SSL-Zertifikat herunterladen wollt, einfach über HTTP verbinden.

Man erkennt es, wenn man sich z.B. einloggt. Statt "Hallo Benutzername!" steht dann immernoch "Hallo Gast!".

Irgendwelches Codegelabere wird hier nicht helfen. Falls ihr doch etwas Code wollt, einfach melden. ô.o

Greez
FalkenaugeMihawk
 
Zuletzt bearbeitet von einem Moderator:

TimLim

Gast
Also bei mir steht Hallo Bely.

Ich könnte mir vorstellen, dass als Header 304 Not Modified gesendet wird und die Seite somit aus dem Cache geladen wird. Bei einem Reload wird die Seite neu geladen.
 

DeletedUser

Gast
Also bei mir steht Hallo Bely.

Ich könnte mir vorstellen, dass als Header 304 Not Modified gesendet wird und die Seite somit aus dem Cache geladen wird. Bei einem Reload wird die Seite neu geladen.
Hm, danke für den Tipp. Ich sende jetzt mal im Header
Code:
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
mit. Werde mal die Lage beobachten.
 

DeletedUser

Gast
Benutzt du da ein eigenes CMS oder was "fremdes"? Eine simple Erklärung wäre nämlich, dass wenn du direkt auf die Arrays zugreifst, das CMS/Templatesystem nicht "merkt" dass sich was an der Seite geändert hat, und deshalb eine gecachte Version benutzt und 304 sendet.
So baue ich jedenfalls meine Template/Cache Systeme auf.

Wo der Sinn liegt, OOP teilweise zu verwenden, aber trotzdem direkt mit den Arrays, anstatt mit Methoden zu arbeiten, sehe ich jetzt auch nicht. Hinsichtlich Performance ändert sich da doch praktisch nichts.
 

DeletedUser

Gast
Benutzt du da ein eigenes CMS oder was "fremdes"? Eine simple Erklärung wäre nämlich, dass wenn du direkt auf die Arrays zugreifst, das CMS/Templatesystem nicht "merkt" dass sich was an der Seite geändert hat, und deshalb eine gecachte Version benutzt und 304 sendet.
So baue ich jedenfalls meine Template/Cache Systeme auf.

Wo der Sinn liegt, OOP teilweise zu verwenden, aber trotzdem direkt mit den Arrays, anstatt mit Methoden zu arbeiten, sehe ich jetzt auch nicht. Hinsichtlich Performance ändert sich da doch praktisch nichts.
Ich entwickle zurzeit zum lernen ein eigenes CMS. Wie bereits erwähnt, sende ich jetzt mal den no-cache und expire-Header mit.

Hinsichtlich Performance: Die Laufzeit der Scripte hat sich um 2/3 verkürzt.
 

DeletedUser24674

Gast
Wo der Sinn liegt, OOP teilweise zu verwenden, aber trotzdem direkt mit den Arrays, anstatt mit Methoden zu arbeiten, sehe ich jetzt auch nicht. Hinsichtlich Performance ändert sich da doch praktisch nichts.

Das ist nicht ganz Richtig - Methodenaufrufe sind viel teurer als einfache Property-Abfragen. Von Gettern und Settern würde ich in PHP aus Performancegründen dringend abraten. Kannst ja mal ein paar Benchmarks machen ;)

Zum Thread: Ich glaube nicht, dass das Problem beim Client liegt, außer du schickst einen Not-modified Header mit. Es sieht er so aus als ob ein Template system zB deine Ausgaben serverseitig cached?
 

DeletedUser

Gast
Ich hatte halt schon PHP Aufträge, bei denen ich den kompletten Code überarbeiten durfte, weil ich public Attribute benutzt habe. Die Begründung war dann, man hätte mir doch eindeutig gesagt, ich solle OOP verwenden ;)
Von daher habe ich halt eine gewissen Abneigung gegen das direkte Verwenden von Attributen :p
 

DeletedUser24674

Gast
Ich hatte halt schon PHP Aufträge, bei denen ich den kompletten Code überarbeiten durfte, weil ich public Attribute benutzt habe. Die Begründung war dann, man hätte mir doch eindeutig gesagt, ich solle OOP verwenden ;)
Von daher habe ich halt eine gewissen Abneigung gegen das direkte Verwenden von Attributen :p

Mit gettern und settern ist das ganze vom Design her schon sauberer, das ist klar ;) Aber wenn was schnell sein soll dann muss man im Punkto Design (zumindest bei PHP) eben Sachen streichen. Wer das nicht macht braucht entweder ne dicke Serverfarm und viel Kohle oder betreibt bei vielen Besuchern irgendwann nen langsamen unbrauchbaren Webservice :p
 
Oben