[Ajax] Bild bei bearbeitung anzeigen

flashOr

Erfahrenes Mitglied
Hallo,
ich arbeite mit JS und ASP um mir aus einer Datenbank Daten zu holen und diese auf meiner anzuzeigen. Nun möchte ich gerne während der Datenbankabfrage ein Bild anzeigen so das der User auch sieht das im Hintergrund etwas passiert.
Dabei habe ich mir gedacht ich binde einfach ein Bild in meine Seite ein welches standardmäßig nicht angezeigt wird. Wenn der User dann einen Datenbankabfrage durchführt wird das Bild eingeblendet und beim erfolgreichen Transfer der Daten wieder ausgeblendet.
Leider funktioniert dies nicht. Das Bild wird erst angezeigt wenn die Datenbank bereits die Daten geliefert hat und die Abfrage fertig ist. Ich möchte es aber schon während der Abfrage anzeigen. Könnte das damit zusammenhängen das ich nur die generierte ASP Seite einbinde und die Seite nicht über DOM neu aufbaue?

Hier mal ein Teil aus dem Code:
Code:
var xmlHttp
function showCustomer(str)
{
showImg('search');
var url="getcustomer.asp?sid=" + Math.random() + "&q=" + str
xmlHttp=GetXmlHttpObject(stateChanged)
xmlHttp.open("GET", url , true)
xmlHttp.send(null)
for (i=0;i<600000;i++) {
j=0;
}
hideImg('search');
}

function showImg( strID ) {

	document.getElementById(strID).style.display = "block";
}

function hideImg( strID ) {

	document.getElementById(strID).style.display = "none";
}


function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject(handler)
{
var objXmlHttp=null

if (navigator.userAgent.indexOf("Opera")>=0)
{
alert("This Site doesn't work in Opera")
return
}
if (navigator.userAgent.indexOf("MSIE")>=0)
{
var strName="Msxml2.XMLHTTP"
if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
strName="Microsoft.XMLHTTP"
}
try
{
objXmlHttp=new ActiveXObject(strName)
objXmlHttp.onreadystatechange=handler
return objXmlHttp
}
catch(e)
{
alert("Error. Scripting for ActiveX might be disabled")
return
}
}
if (navigator.userAgent.indexOf("Mozilla")>=0)
{
objXmlHttp=new XMLHttpRequest()
objXmlHttp.onload=handler
objXmlHttp.onerror=handler
return objXmlHttp
}
}
 
Ok, ich habs! Ich muss einfach Abfragen in welchem Stadium sich das HttpRequest Objekt befindet.

Code:
function stateChanged()
{
if (xmlHttp.readyState==2 || xmlHttp.readyState==3)
{
showImg('search');
}
else if  (xmlHttp.readyState==4)
{
hideImg('search');
}
}
 

Neue Beiträge

Zurück