Ajax Refresh Div

Status
Niet open voor verdere reacties.

Silpher

Gebruiker
Lid geworden
9 aug 2008
Berichten
83
Hoi, Ik heb op mijn site een soort van shoutbox gemaakt, maar ik wil dat hij om de # secondes automatisch refreshed, ik heb een Ajax script alleen wanneer ik hem gebruikt werkt hij gewoon hoe ik wil, maar hij kopieert alles wat onder de div staat.
Hier is de script:
[JS]function Ajax(){
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
}catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
}catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch (e){
alert("No AJAX!?");
return false;
}
}
}
xmlHttp.onreadystatechange=function(){
document.getElementById('Refresh').innerHTML=xmlHttp.responseText;
setTimeout('Ajax()',2000);
}
xmlHttp.open("GET","tst_grafiek.php",true);
xmlHttp.send(null);
}
window.onload=function(){
setTimeout('Ajax()',2000);
}[/JS]
Wat er dus gebeurt is wanneer ik bv. Hallo eronder doe, refreshed hij de stuk in de div maar ook de hallo maar de eerste hallo blijft gewoon staan dus er komen 2 hallo's. Weet iemand hoe ik dit probleem kan oplossen?:)

Edit:
Huh, en ik ben er ook achter gekomen, ook als als ik de tekst onder de div weghaal, dat hij het nog steeds laat zien na de refresh, ik weet niet waar hij die tekst uithaalt..
 
Laatst bewerkt:
Eh, okay. Ik volg je niet helemaal. Heb je toevallig een volledige test-pagina's, of beter, een online demo?





ps. je moet je setTimeouttrouwens veranderen in dit:[js]setTimeout(Ajax, 2000);[/js]setTimeout eet namelijk een functie-pointer, niet een string. Dit is niet het probleem, maar still.
 
Laatst bewerkt:
http://145.118.4.14/59478/tmtit/test/tst_grafiek.php
(Pas op!: Je PC kan vastlopen, hij refreshed constant!)

Zoals je kunt zien begint hij gewoon met 1x Hallo, en na dat hij de 1e keer refreshed komt er opeens nog een Hallo bij, de 2e Hallo blijft gewoon normaal maar de 1e wordt ook steeds mee gerefreshed.

Ik weet al denk ik hoe het komt, hij verwijst naar dezelfde pagina als waar hij opstaat, 't is niet echt een refresh script maar meer update script. Maar ja weet iemand alsnog hoe ik het kan oplossen zonder naar een aparte pagina te verwijzen?
 
Ooh, maar het komt dus omdat je een call naar jezelf (tst_grafiek.php) maakt. Als je je pagina opslaat als test.html, en in tst_grafiek.php alleen de tabel hebt, werkt t wel goed :)
 
Ja ik heb dat nu veranderd, werkt wel goed nu ja:).
Alleen zou het niet kunnen dat hij gewoon echt refreshed, dus dat hij niet hoeft te verwijzen naar een andere pagina?
 
zet dit onderaan de pagina, net voor de </body>:
[JS]setTimeout(function()
{
location.href = window.location.href;
}, 2000);[/JS]waar 2000 de tijd is in ms. (dus in dit geval 2 seconden)


:thumb:




ps. dit refreshed dus gewoon de pagina, maarja, dat is toch eigenlijk wat je wilt? Overgens weet ik niet of dit goed gaat als je dit in een frame zet, maar frames zijn toch oud, nutteloos & lelijk.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan