AJAX Chat
Verfasst: Mittwoch 30. Januar 2008, 23:59
Hallo,
ich versuche gerade einen AJAX Chat zu basteln. Serverseitig Python.
Nun funktioniert mein Script wunderbar, in allen Brwosern außer im IE (6 und 7).
So, nun erfindet der IE leider des öfteren einfach Irgendwelche responseText Ergebnisse, die der Server definitiv nicht sendet. Habt ihr eine Ahnung was hier falsch ist?
das ganze könnt ihr hier testen. Einfach zwei Brwoserfenster öffnen meinname und an müssen natürlich angepasst werden, damit das Skript weiß, welche Datenbankeinträge an euch senden soll.
www.homepages4you.de/chat_index.html
Vielen Dank!
ich versuche gerade einen AJAX Chat zu basteln. Serverseitig Python.
Nun funktioniert mein Script wunderbar, in allen Brwosern außer im IE (6 und 7).
Code: Alles auswählen
var anzahl = 0;
var ajax_counter = 0;
var http_request = new Array;
var inhalt = new Array;
var aktiv = window.setInterval("interval()",5000);
function interval() {
ajax_counter++;
var send = inhalt.join("");
inhalt = new Array;
Ajax(ajax_counter,send,anzahl);
anzahl = 0;
}
function absenden() {
anzahl++;
text = "&text" + anzahl + "=" + document.getElementById("text").value;
von = "&von" + anzahl + "=" + document.getElementById("meinname").value;
an = "&an" + anzahl + "=" + document.getElementById("an").value;
inhalt.push(text,von,an);
document.getElementById('ausgabe').innerHTML = document.getElementById('ausgabe').innerHTML + "Ich: " + document.getElementById("text").value + "<br />";
scrollen();
}
function scrollen() {
document.getElementById("chattext").scrollTop = document.getElementById("ausgabe").offsetHeight - 200;
}
function Ajax(counter,send,inhalt_anzahl) {
http_request[counter] = false;
if (window.XMLHttpRequest) {
http_request[counter] = new XMLHttpRequest();
if (http_request[counter].overrideMimeType) {
http_request[counter].overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) {
try {
http_request[counter] = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
http_request[counter] = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!http_request[counter]) {
return false;
}
http_request[counter].open('GET', 'chat.py?anzahl=' + String(inhalt_anzahl) + "&name=" + document.getElementById("meinname").value + send, true);
http_request[counter].onreadystatechange = function(){
if (http_request[counter].readyState == 4) {
if (http_request[counter].status == 200) {
document.getElementById('ausgabe').innerHTML = document.getElementById('ausgabe').innerHTML + http_request[counter].responseText;
scrollen();
}
}
};
http_request[counter].send(null);
}
Code: Alles auswählen
print "Content-Type: text/html\n"
import cgi
form = cgi.FieldStorage()
import time
import MySQLdb
#Eingaben in Datenbank speichern
anzahl = form.getfirst("anzahl",0)
for x in range(1,int(anzahl) + 1):
text1 = form.getfirst("text%s" %x,"")
von1 = form.getfirst("von%s" %x,"")
an1 = form.getfirst("an%s" %x,"")
anfrage_speichern = connection.cursor()
if text1 != "":
anfrage_speichern.execute("INSERT INTO chat(text,von,an,wann,gelesen) VALUES('%s','%s','%s','%s','0')" %(text1,von1,an1,time.strftime("%d.%m.%Y %H:%M", time.localtime())))
#Datenausgabe
meinname = form.getfirst("name","")
anfrage_ausgabe = connection.cursor()
anfrage_ausgabe.execute("SELECT von,wann,text,id FROM chat WHERE gelesen='0' AND an='%s'" %meinname)
result_ausgabe = anfrage_ausgabe.fetchall()
for y in result_ausgabe:
von2,wann2,text2,id2 = y
print "%s %s: %s<br />" %(wann2,von2,text2)
anfrage_ausgabe.execute("UPDATE chat SET gelesen='1' WHERE id='%s'" %id2)
das ganze könnt ihr hier testen. Einfach zwei Brwoserfenster öffnen meinname und an müssen natürlich angepasst werden, damit das Skript weiß, welche Datenbankeinträge an euch senden soll.
www.homepages4you.de/chat_index.html
Vielen Dank!