XML problem
Jag lyckas bara göra så det blir en fördröjning, alltså, att det går en sekund, sedan kommer texten. Så jag byggde om koden lite och fick fram detta:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <html> <head> <script type= "text/javascript" src= "xmlhttprequest.js" ></script> 'Behövs för att XML ska kunna fungera. <script language="JavaScript" type="text/javascript"> function displayMSG() { xhr = new XMLHttpRequest(); xhr.open("GET","list_db.asp",false); xhr.send(null); } function myCallback(xhr.responseText){ document.getElementById("responseArea").innerHTML = response; } </script> </head> <body onLoad="setTimeout(' displayMSG()',1000);"> <div id= "responseArea" >Vänta...</div> </body> </html> |
Men det står bara Vänta... Function MyCallback är för att jag ska kunna hämta xhr.responseText och göra om det så det skrivs ut i DIVén. Men jag tror det är de som inte fungerar så bra. Vad kan vara fel?
Svara
Sv: XML problem
nu är ju frågan vad som finns i xmlhttprequest.js, men i "normala" fall så saknas
xhr.onreadystatechange = myCallback;
samt att din inparameter till callbacken ser något skum ut..
Svara
Sv: XML problem
Ok, hm.. alltså, myCallback funktionen vet jag att den inte är rätt, kalla det för dummy, om så behövs.
EDIT:
Nu har jag läst lite i min undan stoppade Javascripts bok, och har fått fram lite saker.
Min kod ser ut så här nu:
<html>
<head>
<script type="text/javascript" src="xmlhttprequest.js"></script>
<script language="JavaScript" type="text/javascript">
function displayMSG()
{
xhr = new XMLHttpRequest();
xhr.open("GET","list_db.asp",false);
xhr.send(null);
document.getElementById("responseArea").innerHTML = (xhr.responseText);
}
setTimeout("displayMSG()",1000);
</script>
</head>
<body>
<div id="responseArea" style="background-color: #F7F7F7;">Vänta...</div>
</body>
</html>
Det mesta fungerar nu, det står "Vänta..." en sekund, sedan så kommer texten, men det uppdaterar sig inte. Hur ska jag göra?
Svara
Sv: XML problem
Du bör kolla om responsen är tom eller inte, och om, göra om anropet.
Annars, om du vill ha periodiska anrop, pröva setInterval() istället för setTimeout().
Svara