Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

PHP bzw. javaScript refresh?





Frage

Hallo Leute, habe ein Problem. Also: Ich will mit php einen chat programmieren! Hat eigentlich alles ganz gut geklappt bis auf das Z refresh! HTML refresh ist zwar ok aber das klicken beim wiederladen der Seite nervt! JavaScript refresh ist auch ok aber solange die Datenbankabfrage läuft ist die Tabelle mit dem inhalten weiss! Das heisst wenn ich alle 2 sec. ein refresh machen lass ist jede 2.sec ungefär für eine sec. mein Bild weiss! Seht ihr da eine andere möglichkeit wie z.b erst die Datenbankabfrage ausführen und dann den reload /refresh machen oder gibt es eine andere Möglichkeit? Viele Grüße & Danke im Voraus Marauder

Antwort 1 von semi

Mach' den Refresh in einem getrennten, unsichtbaren Frame (0 Pixel hoch oder breit)
Dein PHP Script sollte in dieses Frame ein Javascript generieren, das die neuen Daten enthält. Sobald das unsichtbare Frame geladen ist (onLoad), ruft es irgendeine Funktion des Hauptframes auf und übergibt die neuen Daten. Im Hauptframe kannst Du damit dann die Anzeige aktualisieren.
So könnte das generierte Frame aussehen

...
<head>
<script>
var PAUSE = 5000;
var msgList = new Array(
  "Benutzer 1", "Text 1",
  "Benutzer 2", "Text 1",
  "Benutzer 1", "Text 2"
  usw.
);
function update() {
  top.frames.hauptframe.update(msgList);
  window.setTimeout("location.reload()", PAUSE);
}
</script>
</head>
<body onLoad="update();">
...


Ansonsten ein Applet als Front-End programmieren.


Gruß,
Michael

Antwort 2 von Marauder

Danke werds gleich mal testen an sowas hatte ich nicht gedacht!

Antwort 3 von Mapf

Oder Du lässt von PHP eine Seite ausgeben die nie beendet wird, das heißt zwar dass es so aussieht als ob die Seite ewig lang geladen werden würde, aber das ist auf PHP Basis das schnellste und sauberste.

Mapf

Antwort 4 von Marauder

Wie geht das ich meine mir wird die Seite ja erst angezeigt wenn sie komplett geladen ist ??

Antwort 5 von Mapf

Nein, es muss halt in einem einzelnen Frame geschehen in dem Du nur den Text ausgibst, keien Tabellen oder ähnliches.

(user) text<br>(user) text<br>(user) text...

Das wird sofort angezeigt.

Die programmiertechnische Durchführung bleibt Dir überlassen ;)

Antwort 6 von MixMax

das problem ist das PHP nach 30 sekunden ein Timeout macht, das hatte ich auch mal gemacht (funktioniert sogar wenn man das timeout hochsetzt)

set_time_limit(300);

alle 5 minuten müstest du dann aber immer noch neu laden, evtl kann man auch ein timelimit was in die stunden geht einbauen.

die sache hat einen haken - der standartbenutzer der auf den chat geht kann das problem haben das sich der chat nicht aufbaut da der Internetexplorer z.B. nur 2 downloads zugleich macht, also wenn du den chat öffnest kanns sein das er die bilder nicht laden kann oder andere teile des fensters nicht geöffnet werden (oder er nix abschicken kann)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: