• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Jede Sekunde Inhalt aktuallisieren (Nachrichten (0))

Hallo,

seit Jahren baue ich immer irgendwelche Internetseiten auf, aber leider ohne AJAX. Jetzt will ich mich mal mit Ajax beschäftigen, denn auf der türkischen Dorfseite meines Onkels, hat man die Möglichkeit sich zu Registrieren.

Alles klappt wunderbar, doch jetzt will ich bisschen mit AJAX arbeiten. Ich habe auf der Seite ajax.php?pn eine Abfrage, wie viele ungelesene Nachrichter der Benutzer hat. Sagen wir mal da kommt "1" raus.

Jetzt will ich, dass Nachrichten (0) immer jede Sekunde automatisch aktuallisiert wird. Zumindest die 0.

Hab nach Tutorials geschaut, doch nichts genaues gefunden, bis auf "setInterval". Damit kam ich aber leider auch nicht weiter.

Kann einer mir helfen?

Wie kann ich irgendwie im Frontend einbauen, dass er in die bestimmte Stelle, sagen wir mal Nachrichten (<div id="pn">0</div>) jede Sekunde aktuallisiert. Er soll jede Sekunde, ajax.php?pn aktuallisieren.

Ich weiß garnicht wie ich das formulieren soll, da ich keine Ahnung von Ajax habe. Ich hoffe Ihr versteht was ich meine.

Mfg Yusuf
 
Werbung:
Du hast die Antwort auf deine Frage schon gegeben Yusuf. setInterval()ist die Lösung. Doch pro Besucher jede Sekunde einen HTTP-Request machen ist ziemlich schlecht.
Ich nehme an, du hast das hier:
HTML:
<p><a href="nachrichten">Nachrichten</a> (<span id="msg_c"></span>)</p>
In JavaScript:
PHP:
var ajax__ = function() {
if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		try {
			return new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				return new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
		return false;
	}

};
var ajax = ajax__();
var interval = setInterval(function(){
  if (ajax.readyState === 0 || ajax.readyState === 4) {
    ajax.open("GET","ajax.php?pn",true);
    ajax.onreadystatechange = function() {
      if (ajax.readyState == 4) {
        document.getElementById("msg_c").innerHTML = ajax.responseText;
      }
    };
    ajax.send(null);
  }
},1000);
 
Werbung:
Hi,

Mit den requests in sehr kurzen Abständen verursachst du, auch wenn es nur kleinere Anfragen sind, eine gewisse Grundlast (CPU). Das könnte bei entspr. Anzahl paralleler User den Webserver "in die Knie" zwingen.
 
Hallo,

dass war mir garnicht bewusst. Was würdet ihr den empfehlen? Und das ganze funktioniert zwar, aber wenn ich die Seite wechsel, dann verschwindet, bevor die neue Seite geladen wird, die 0 bei Nachrichten (0) und die restlichen Ajax-Abfragen.

Ist das normal?
 
Werbung:
Zurück
Oben