Wer hat recht? Was braucht mehr leistung? Was ist besser?

Ein Kompromiss nur damit beide Recht behalten? Die dateibasierte Lösung ist definitiv effizienter, wenn auch etwas komplizierter bei der Implementierung. Dafür sind aber die Lesezugriffe flotter.

Wir haben doch jetzt ein weg gefunden der beides vereint. Da es eine shoutbox ist wird nicht viel gepostet, sollte jemand posten wird die id in eine txt datei geschrieben. JS öffnet diese datei alle 12 sekunden, falls die datei eine andere id hat, als die letzte id die JS geladen hat, fragt es die getdata.php nach den neuen inhalten.

Der Vorteil ist jetzt, das nicht alle 12 sekunden 20 leute eine unsinnige SQL anfrage machen, und PHP unnötig arbieten lassen. Sondern einfach nur eine datei nach neuen einträgen abfragen. Und dann unsinnge DB anfragen machen.;-)

Ich überleg gerde, da es eine shoutbox ist, wird sie sicher bei vielen unter ein Menu getan. Sollten die User surfen muss bei jedem reload einer seite die ganzen inhalte neu geladen werden. Könnte man JS dazu bringen sich die inhalte zu merken?
 
Der Springende Punkt ist, dass eine relationale Datenbank für diesen Zweck etwas überdimensioniert ist. Denn die Vorteile einer relationalen Datenbank (etwa bedingte Abfragen, Joins, etc.) werden in diesem Fall gar nicht genutzt. Die einzigen Interaktionen sind das Abfragen der letzten x Datensätze sowie das Anfügen neuer.
 
Du könntest die Inhalte in Cookies speichern, diese haben zwar ein Grössenlimit von ca. 4KB, aber so eine Shoutbox dient ja auch nicht dazu, Romane zu Schreiben :-)

Hehe, an so was dachte ich auch schon, doch irgend wie ist das auch nichts, wenn ich mir vorstelle, das du dann nach einer zeit schon ein paar shouts hast, man könnte ja für jeden shout ein cokkie setzten, doch dann hätte man sehr viele cookies.:suspekt:

Könnte man irgend wie den Browser cache ausnutzen?
 
Zuletzt bearbeitet:
Warum sehr viele Shouts...ich denke, es soll nur 5 geben?

Also wenn du die Shoutbox öffntest ist deine ID des letzten betrags leer, dann ladet er die 5 letzten beträge. So sollte jetzt eine neue ID verfügbar sein, so ladet JS den letzten eintag und fügt es einfach in das Div für die nachrichten hinzu, so bleiben die laten einträge immernoch erhalten, nur falls die neu ladest, kommen die letzen 5 beträge, da deine letzte id wieder 0 ist.
 
Ich verstehe immer noch nicht, wieso dir die datenbasierten Lösung nicht genügt.

Wir wollen versuchen so wennig leistung wie möglich auf dem server zu verschieben.

So überlag mal.
Du hast eine Webseite mit 15 Besuchern, die immer Online sind, diese 15 besucher laden alle 12 sekunden eine php datei. Nun muss der Server php bearbeiten und auch noch eine verbindung zu SQL aufbauen, und das alle 12 sekunden obwohl gar keine neuen nachrichten da sind, als das resultat = 0 ist. Jetzt dachte ich mir es wäre einfacher eine datei zu öffnen und dortraus die shouts zu laden, halt mit JS und xml. Nun sind wir aber zu dem schluss gekommen, dass das schreiben zu vielleistung braucht und auch nicht sehr schön ist.

Darum wollen wir jetzt der setdata.php, die für das senden der shouts verantwotlich ist eine txt datei schreiben, wo die letzte id drin steht, sollte JS jetzt eine ältere ID haben, soll JS die alte getdata.php öffnen, das spart dadruch leistung, das nicht alle 12 sekunden eine sql abfrage von 15 leuten gemacht werden muss sondern erstmal nur eine dattei gescheckt wird, und dann die abfrage gemacht wird.

Nun überlege ich gerade, wie ich den Browser dazu bringe auch beim relaod der seite den schon geladen inhalt zu merken, damit man bei surfen auf der webseite wo die shoutbox eingebaut wird nicht immer wieder alles geladen werden muss
 
Zurück