Здравейте!
Направих един сайт, в който потребителите могат да оставят, един на друг, съобщения.Искам, когато потребителя се логне, при наличие на НЕпрочетено съобщение, да се визуализира един DIV, в който да пише колко непрочетени съобщения има!Значи, ето и 4-те файла, които ползвам:
-zxmls.js - библиотека,чрез която създавам XMLHttp обект
-CheckComment.php - php файла, който проверява за ново съобщение
-CommentChecker.js - това е файла, който през определен интервал от време стартира функцията checkComments, и при наличие на ново(и) съобщение(я) създава слой.
-PeriodicRefresh.css- файла, чрез който задавам стил на дива
и съответно файла example.php, в който фактически трябва да се визуализира DIV-a,ако има новинки.
Ето и съоветно тяхното съдържание:
example.php
Ето го и файла е CheckComments.php
Ако стартирам само този файл в броузъра, ми излиза:
Така, ето го и проблемният CommentChecker.js
Проблема е следния:като стартирам файла example.php(аз имам една преставка на FireFox,казва се FireBug,която ми дава грешките на даден сайт).Ето какво ми дава на мен при стартиране на example.php:
Направих един сайт, в който потребителите могат да оставят, един на друг, съобщения.Искам, когато потребителя се логне, при наличие на НЕпрочетено съобщение, да се визуализира един DIV, в който да пише колко непрочетени съобщения има!Значи, ето и 4-те файла, които ползвам:
-zxmls.js - библиотека,чрез която създавам XMLHttp обект
-CheckComment.php - php файла, който проверява за ново съобщение
-CommentChecker.js - това е файла, който през определен интервал от време стартира функцията checkComments, и при наличие на ново(и) съобщение(я) създава слой.
-PeriodicRefresh.css- файла, чрез който задавам стил на дива
и съответно файла example.php, в който фактически трябва да се визуализира DIV-a,ако има новинки.
Ето и съоветно тяхното съдържание:
example.php
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Home page</title>
<script type="text/javascript" src="Scripts/zxml.js"></script>
<script type="text/javascript" src="Scripts/CommentChecker.js"></script>
<link rel="stylesheet" type="text/css" href="css/PeriodicRefresh.css" />
</head>
<body>
<p>Prowerka</p>
</body>
</html>
Код:
header("Cache-control: No-Cache");
header("Pragma: No-Cache");
//database information
$sDBServer = "localhost";
$sDBName = "xxx";
$sDBUsername = "xxx";
$sDBPassword = "xxx";
//create the SQL query string
$oLink = mysql_connect($sDBServer,$sDBUsername,$sDBPassword);
@mysql_select_db($sDBName) or die("-1|| || ");
$sSQL = "select * from message where touser='emagi' and unread='unread'";
$query = mysql_query($sSQL) or die("-1|| || ");
$num = mysql_num_rows($query);
if($num > 0) {
$sResult = mysql_fetch_array($query);
echo $num."||".$sResult['touser'];
} else {
echo "-1|| || ";
}
@mysql_free_result($oResult);
@mysql_close($oLink);
.4||emagi
Така, ето го и проблемният CommentChecker.js
Общо взето правя заявка, "вземам" резултата от проверка на CheckComment.php, чрез функцията spilt разделям резултата, като го присвоявам на елементите от масива aData.var oXmlHttp = null;
var iInterval = 1000;
var iLastCommentId = -1;
var divNotification = null;
var blnRequestsEnabled = true;
function checkComments() {
if (blnRequestsEnabled) {
try {
if (!oXmlHttp) {
oXmlHttp = zXmlHttp.createRequest();
} else if (oXmlHttp.readyState != 0) {
oXmlHttp.abort();
}
oXmlHttp.open("get", "../CheckComments.php", true);
oXmlHttp.onreadystatechange = function () {
if (oXmlHttp.readyState == 4) {
if (oXmlHttp.status == 200) {
var aData = oXmlHttp.responseText.split("||");
if (aData[0] != iLastCommentId) {
if (iLastCommentId != -1) {
showNotification(aData[1], aData[0]);
}
}
setTimeout(checkComments, iInterval);
} else {
throw new Error("An error occurred while making the request.");
}
}
};
oXmlHttp.send(null);
} catch (oException) {
blnRequestsEnabled = false;
}
} //End: if
}
function showNotification(sName, sNum) {
if (!divNotification) {
divNotification = document.createElement("div");
divNotification.className = "notification";
document.body.appendChild(divNotification);
}
divNotification.innerHTML = "Hi," + sName+ "<br />?????" + sNum +"e-mails";
divNotification.style.top = document.body.scrollTop + "px";
divNotification.style.left = document.body.scrollLeft + "px";
divNotification.style.display = "block";
setTimeout(function () {
divNotification.style.display = "none";
}, 5000);
}
//if Ajax is enabled, assign event handlers and begin fetching
window.onload = function () {
if (zXmlHttp.isSupported()) {
checkComments();
}
};
Проблема е следния:като стартирам файла example.php(аз имам една преставка на FireFox,казва се FireBug,която ми дава грешките на даден сайт).Ето какво ми дава на мен при стартиране на example.php:
[Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: http://sou.host-bg.info/Scripts/CommentChecker.js :: anonymous :: line 22" data: no]
[Break on this error] if (oXmlHttp.status == 200) {