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

Shoutbox

Status
Für weitere Antworten geschlossen.

gollum1990

Neues Mitglied
Hallo,
ist es möglich wenn neue Einträge in einer Shoutbox geschriebenen wurden, diese anzuzeigen ohne eine Aktualisierung?? Wie ich schon des öfteren gehört habe soll dies mit Javascript funktionieren, wenn es so ist, wie geht dass?

MFG, gollum1990
 
Werbung:
ich denke du könntest mit cookies arbeiten.

Du speicherst bei einem Benutzer ein Cookie mit der Anzahl der bereits vorhandenen einträge in der shoutbox.

Wenn der Besucher wieder kommt liest du das Cookie aus und wenn die Anzahl im Cookie kleiner ist als die anzahl der Einträge in der shoutbox, dann weist du den Benutzer darauf hin, dass neue einträge vorhanden sind.

Natürlich kann man das dann verfeinern und z.B. sagen wieviel einträge neu sind und evtl. auch die beiträge selbst anzeigen.

Ich kann dir jetzt keinen Code geben, sollte nur als Gedankenanstoß dienen.
(das problem is einfach das ich nicht mit cookies umgehen kann, deswegen kann ich dir auch kein code geben)
 
Nunja, ich meine der Besucher bleibt jetzt zum Beispiel 5 Minuten auf der Seite, ein ander User hat in den 5 Minuten einen Eintrag geschrieben, und dieser Eintrag wird angezeigt ohne eine Aktualisierung oder diese Seite zu verlassen.
 
Werbung:
vielleicht wäre es möglich, das javascript das diese abfrage durchführt in ein externes dokument zu schreiben und dann mittels
HTML:
<script src="extern.js">
das einzubinden. Dann müsste man einen weg finden das nach x sekunden das externe js aktualisiert wird.

z.B. so:
die normale seite
HTML:
[...]
<iframe src="script.html" style="display:none"></iframe>
[...]
script.html:
HTML:
[...]
<script src="externes.js"></script>
[...]
externes.js:
Code:
function reloadthescript()
{
document.location.href="script.html";
}
//Hier würde die abfrage für neue einträge stehen
window.setTimeout("reloadthescript()",10000)
 
Kann man das auch mit Ajax machen oder was?

Also wie soll ich den dat machen so?:
iframe.php
Code:
<html>
<head>
<script language="Javascript1.1" src="reloadthescript.js"></script>
</head>
<body onload="reloadthescript()">
.....
</body>
</html>

reloadethescript.js
Code:
function reloadthescript()
{
document.location.href="iframe.php";
}
window.setTimeout("reloadthescript()", 1);

EDIT:

Ich habe ein Tutorial gefunden, das geht mit Ajax.
Also hier das Ajax Script(Für alle die es noch nicht wissen):
Code:
// Quelle: http://www.devblog.de
// "Shoutbox als AJAX-Anwendung"
// Code darf frei verwendet werden

// globale Instanz von XMLHttpRequest
var xmlHttp = false;

// XMLHttpRequest-Instanz erstellen
// ... für Internet Explorer
try {
    xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
    try {
        xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
        xmlHttp  = false;
    }
}
// ... für Mozilla, Opera und Safari
if (!xmlHttp  && typeof XMLHttpRequest != 'undefined') {
    xmlHttp = new XMLHttpRequest();
}

// aktuelle Daten laden
loadData();

// alle 5 Sekunden neue Daten holen
setInterval("loadData()",5000);

function loadData()
{
 if (xmlHttp) {
     xmlHttp.open('GET', 'getdata.php', true);
     xmlHttp.onreadystatechange = function () {
         if (xmlHttp.readyState == 4) {
             document.getElementById("asb_content").innerHTML = xmlHttp.responseText;
         }
     };
     xmlHttp.send(null);
 }
}

function saveData()
{
if (xmlHttp) {
    xmlHttp.open('POST', 'setdata.php');
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.send('name='+document.frmshoutbox.txtname.value+'&message='+document.frmshoutbox.txtmessage.value);
}

// Message-Eingabefelder leeren und Focus setzen
document.frmshoutbox.txtmessage.value = '';
document.frmshoutbox.txtmessage.focus();
}
 
Zuletzt bearbeitet:
ich denke mit JAVA geht es auf jeden fall, wäre ja dann ein chat wie IRC, nur das die einträge dauerhaft gespeichert werden.

AJAX kenne ich nicht, deshalb weis ich nicht ob das geht
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben