Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.02.2013, 12:34
Новичок на форуме
Отправить личное сообщение для Visual Посмотреть профиль Найти все сообщения от Visual
 
Регистрация: 01.02.2013
Сообщений: 4

Проблема с выводом сообщений
Суть проблемы такова:
есть две команды,которые берутся из базы данных и выводятся в окно.
Но проблема в том,что одну команду вывести не могу,сразу выводятся обе.



Помогите разобраться в чем проблема.

var chatURL = "/webcschat/chat.php";
var xmlHttpGetMessages = createXmlHttpRequestObject();
var xmlHttpGetColor = createXmlHttpRequestObject();
var updateInterval = 1000;
var debugMode = true;
var cache = new Array();
var lastMessageID = -1;
var lastMessageID2 = -1;
function createXmlHttpRequestObject()
{
var xmlHttp;
try
{
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
"MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP");
for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
{
try
{
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
}
catch (e) {}
}
}
if (!xmlHttp)
alert("Ошибка создания объекта XMLHttpRequest.");
else
return xmlHttp;
}
function init()
{
requestNewMessages();
}
function requestNewMessages()
{
if(xmlHttpGetMessages)
{
try
{
if (xmlHttpGetMessages.readyState == 4 ||
xmlHttpGetMessages.readyState == 0)
{
var params = "";
if (cache.length>0)
params = cache.shift();
var params2 = "";
if (cache.length>0)
params2 = cache.shift();
else
params = "id=" + lastMessageID;
params2 = "id=" + lastMessageID2;
xmlHttpGetMessages.open("POST", chatURL, true);
xmlHttpGetMessages.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
xmlHttpGetMessages.onreadystatechange =
handleReceivingMessages;
xmlHttpGetMessages.send(params);
}
else
{
setTimeout("requestNewMessages();", updateInterval);
}
}
catch(e)
{
displayError(e.toString());
}
}
}
function handleReceivingMessages()
{
if (xmlHttpGetMessages.readyState == 4)
{
if (xmlHttpGetMessages.status == 200)
{
try
{
readMessages();
readMessages2()
}

catch(e)
{
displayError(e.toString());
}
}
else
{
displayError(xmlHttpGetMessages.statusText);
}
}
}

function readMessages()
{
var response = xmlHttpGetMessages.responseText;
if (response.indexOf("ERRNO") >= 0
|| response.indexOf("error:") >= 0
|| response.length == 0)
throw(response.length == 0 ? "Void server response." : response);
response = xmlHttpGetMessages.responseXML.documentElement;
idArray = response.getElementsByTagName("id");
nameArray = response.getElementsByTagName("name");
timeArray = response.getElementsByTagName("time");
messageArray = response.getElementsByTagName("message");
displayMessages(idArray, nameArray, messageArray);
if(idArray.length>0)
lastMessageID = idArray.item(idArray.length - 1).firstChild.data;
setTimeout("requestNewMessages();", updateInterval);
}
function displayMessages(idArray, nameArray,  messageArray)
{
for(var i=0; i<idArray.length; i++)
{
var message = messageArray.item(i).firstChild.data.toString();
var time = timeArray.item(i).firstChild.data.toString();
var name = nameArray.item(i).firstChild.data.toString();
var color_array = new Array("#FF0000", "#00AA00" ,"#0000FF", "#000000")
var rand = Math.floor(Math.random()*3);
var htmlMessage = "<div style=\"color:" + color_array + "\">" +  time   + ' ' + "<b>"  + name + "</b>" + message.toString() + "</div>";
displayMessage (htmlMessage);
}
}
function displayMessage(message)
{
var oScroll = document.getElementById("scroll");
var scrollDown = (oScroll.scrollHeight - oScroll.scrollTop <= oScroll.offsetHeight );
oScroll.innerHTML += message;
oScroll.scrollTop = scrollDown ? oScroll.scrollHeight :
oScroll.scrollTop;
}

function readMessages2()
{
var response = xmlHttpGetMessages.responseText;
if (response.indexOf("ERRNO") >= 0
|| response.indexOf("error:") >= 0
|| response.length == 0)
throw(response.length == 0 ? "Void server response." : response);
response = xmlHttpGetMessages.responseXML.documentElement;
idArray = response.getElementsByTagName("id");
ntimeArray = response.getElementsByTagName("ntime");
nnameArray = response.getElementsByTagName("nname");
onameArray = response.getElementsByTagName("oname");
displayMessages2(idArray, onameArray, nnameArray, ntimeArray);
if(idArray.length>0)
lastMessageID = idArray.item(idArray.length - 1).firstChild.data;
setTimeout("requestNewMessages();", updateInterval);
}
function displayMessages2(idArray, onameArray,  nnameArray, ntimeArray)
{
for(var k=0; k<idArray.length; k++)
{
var nname = nnameArray.item(k).firstChild.data.toString();
var oname = onameArray.item(k).firstChild.data.toString();
var ntime = ntimeArray.item(k).firstChild.data.toString();
var htmlMessage2 = "<div style=\"color:" + "\">" + ntime + " </b>" + "<font color=red>" + "<font size=3>"   + "* " + "</font>"  + "</font>"   + 'Игрок ' + "<b>" + oname + "</b>" + ' сменил ник на ' + "<b>" + nname + "</b>" + "</div>";
displayMessage (htmlMessage2);
}
}


function displayError(message)
{
displayMessage("Ошибка доступа к серверу! "+
(debugMode ? "<br/>" + message : ""));
}
function trim(s)
{
return s.replace(/(^\s+)|(\s+$)/g, "")
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с выводом переменной. Iktash Элементы интерфейса 6 18.01.2013 12:30
Проблема с выводом массива на консоль Vempel jQuery 1 06.08.2012 15:57
Проблема с выводом информации после запроса с помощью ajax Dimario AJAX и COMET 0 23.07.2011 17:08
Проблема с выводом скрипта на страницу Mike_S. Общие вопросы Javascript 8 14.06.2011 07:26
Проблема с выводом контента в топ-панели Slavk0 Общие вопросы Javascript 0 28.03.2011 11:39