Witam,
mam oto sobie taki kodzik:
// przechowuje obiekt XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();
// inicjalizuje pamięć podręczną żądania
var cache = new Array();
// tworzy obiekt XMLHttpRequest
function createXmlHttpRequestObject()
{
// przechowa odwołanie do obiektu XMLHttpRequest
var xmlHttp;
// powinno działać dla wszystkich przeglądarek z wyjątkiem IE6 i starszych
try
{
// próbuje stworzyć obiekt XMLHttpRequest
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
// zakładając, że IE6 lub starsza
var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
"MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP");
// sprawdza każdy prog id aż któryś zadziała
for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
{
try
{
// próbuje stworzyć obiekt XMLHttpRequest
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
}
catch (e) {} // ignoruje potencjalne błędy
}
}
// zwraca stworzony obiekt albo wyświetla komunikat o błędzie
if (!xmlHttp)
displayError("Błąd podczas tworzenia obiektu XMLHttpRequest.");
else
return xmlHttp;
}
function validate(inputValue, fieldID)
{
if(xmlHttp)
{
if(fieldID)
{
inputValue = encodeURIComponent(inputValue);
fieldID = encodeURIComponent(fieldID);
cache.push("inputValue=" + inputValue + "&fieldID=" + fieldID);
}
try
{
if(xmlHttp.readyState == 4 || xmlHttp.readyState == 0 && cache.length > 0)
{
var cacheEntry = cache.shift();
xmlHttp.open("POST", "validate.php", true);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.onreadystatechange = HandleReServer;
xmlHttp.send(cacheEntry);
}
}
catch(e)
{
alert("Wystąpił błąd !2");
}
}
}
function HandleReServer()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
try
{
ReadHandle();
}
catch(e)
{
alert("Wystąpił błąd !5");
}
}
else
{
alert("Wystąpił błąd !3");
}
}
}
function ReadHandle()
{
responseXml = xmlHttp.responseXML;
xmlDoc = responseXml.documentElement;
result = xmlDoc.getElementsByTagName("result")[0].firstChild.data;
fieldid = xmlDoc.getElementsByTagName("fieldid")[0].firstChild.data;
message = document.getElementById(fieldid + "Failed");
message.className = (result == 0) ? "error" : "hidden";
}
Gdy dodaje do funkcji ReadHandle, czy też validate - setTimeout(); wyświetla mi komunikat w alert();
catch(e)
{
alert("Wystąpił błąd !5");
}
Jak temu zapobiec, proszę o cenne informacje i uwagi ? Pozdrawiam
Ten post edytował SN@JPER^ 28.05.2007, 17:52:23