I'm using this code to update a div
with an AJAX request
var xmlhttp;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("some_id").innerHTML += xmlhttp.responseText;
}
}
xmlhttp.open("GET", "http://example.com/");
xmlhttp.setRequestHeader('Content-Type', 'utf8');
xmlhttp.send();
Everything works fine, the problem is that when the div
with id some_id
has a lot of content in it i can see the content disappearing and then appearing updated after the AJAX request has been executed.
I think that it's because
document.getElementById("some_id").innerHTML += xmlhttp.responseText;
Is deleting and replacing the innerHTML
of the div
with the previous innerHTML
plus the new content, resulting in a previous content → blank → updated content
behaviour.
Is there a way to append the new content to the div
instead of replacing its whole content with the new one?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…