It appears you have not yet registered with DEVPPL. To register please click here... (it's fast, easy and free!)

Forum

Log In Sponsors
Board index Programming JavaScript Forum

"undefined"-message, hanging requests and more...

"undefined"-message, hanging requests and more...

Postby Uzm on Sun Jul 27, 2008 5:08 pm

Hello. I'm curretly working on a AJAX chat, but i've faced some problems with it. Sometimes i get a lot of "undefined"-messages, messages aren't sent and some other problems. Nothing that happens all the time, but quite often. Below is my code (it's a bit huge, i know :lol: ). Maybe you guys could help me to solve those problems?

Code: Select all
controlRequest = false;
getDataRequest = false;

function createRequest() {
try {
return new XMLHttpRequest();
} catch (trymicrosoft) {
try {
return new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
alert("Error initializing XMLHttpRequest!");
}
}
}
}

function loaded () {
document.getElementById("win").style.visibility = "visible";
document.getElementById("main").style.visibility = "hidden";
yo = setTimeout('getData()', loadedTimeout);
}

function exit () {
clearTimeout(yo);
loggedIn = false;
controlRequest = createRequest();
if(controlRequest) {
controlRequest.open("POST", chatUrl + "exit.php", true);
controlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
controlRequest.send("");
}
document.getElementById("main").style.visibility = "visible";
document.getElementById("win").style.visibility = "hidden";
}

function send (msg, to) {
controlRequest = createRequest();
if(controlRequest) {
controlRequest.open("POST", chatUrl + "send.php", true);
controlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
controlRequest.send("msg=" + encodeURIComponent(msg) + "&userId=" + userId + "&to=" + to);
}
}

function getData() {
getDataRequest = createRequest();
if(getDataRequest) {
getDataRequest.open("POST", chatUrl + "get.php", true);
getDataRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
getDataRequest.send("userId=" + userId + "&msgtime=" + msgtime + "&time=" + timestamp);
getDataRequest.onreadystatechange = getDataEvent;
}
if (loggedIn === true) {
yo = setTimeout('getData()', loadingTimeout);
}
}

function getDataEvent() {
if (getDataRequest.readyState === 4 && loggedIn === true) {
if (getDataRequest.status === 200) {
if (getDataRequest.responseText.substr(0,1) === "|") {
clearTimeout(yo);
alert(getDataRequest.responseText.substr(1,getDataRequest.responseText.length - 1));
exit();
}
else {
var lines = getDataRequest.responseText.split('\n');
lines.length = lines.length - 1;
if (lines.length > 0) {
onlineUserList = lines[0].split("|");
onlineUserList.length = onlineUserList.length - 1;
}
if (lines.length > 1) {
for (i = 1; i < lines.length; i++) {
var msg = lines[i].split("|");
try {
parent.talk.printmsg(msg[0],msg[1],msg[2],msg[3]);
} catch (e) {
}
msgtime = msg[4];
}
}
seichas = document.getElementById("chatlan");
mysp = document.createElement("span");
hrprfr = document.createTextNode("ЮЗЕРОВ ОНЛАЙН: " + onlineUserList.length);
mysp.appendChild(hrprfr);
seichas.replaceChild(hrprfr, seichas.firstChild);
parent.menu.printmenu();
}
}
else {
alert("Ошибка запроса к серверу: " + enterRequest.status);
}
}
}

function enterChat(userName, password) {
controlRequest = createRequest();
if(controlRequest) {
controlRequest.onreadystatechange = enterChatEvent;
controlRequest.open("POST", chatUrl + "enter.php", true);
controlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
controlRequest.send("login=" + userName + "&password=" + password);
}
}

function enterChatEvent() {
if (controlRequest.readyState === 4) {
if (controlRequest.status === 200) {
if (controlRequest.responseText.indexOf("|") != -1) {
var user = controlRequest.responseText.split("|");
userId = user[0];
userName = user[1];
level = user[2];
loggedIn = true;
loaded();
}
else if (controlRequest.responseText === 'n') {
alert("Ошибка при входе в чат: Вы ввели неправильный логин и/или пароль!");
}
else {
alert("Ошибка при входе в чат: " + controlRequest.responseText);
}
}
else {
alert("Ошибка запроса к серверу: " + controlRequest.status);
}
}
}
Uzm
 
Posts: 0
Joined: Sun Jul 27, 2008 5:02 pm
Location: Sweden

Who is online

Users browsing this forum: No registered users and 5 guests