używam tego kodu, aby zaktualizować div
z żądania AJAXInnerHTML dołączyć zamiast zastąpienia
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();
wszystko działa poprawnie, problem jest, że gdy div
id some_id
ma dużo treści w nim Widzę, że zawartość znika, a następnie pojawia się zaktualizowana po wykonaniu żądania AJAX.
Myślę, że to dlatego,
document.getElementById("some_id").innerHTML += xmlhttp.responseText;
Czy usunięcie i zastąpienie innerHTML
z div
z poprzednim innerHTML
powiększonej o nowe treści, co skutkuje previous content → blank → updated content
zachowanie.
Czy istnieje sposób, aby dołączyć nowych treści do div
zamiast zastępowania całej zawartości nową?
używasz jQuery lub natywną JavaScript? – Raghu
spróbuj dodać element potomny zamiast zastępować całego html –
@Raghu Używam obu, ale czyste rozwiązanie javascript byłoby dla mnie lepsze – BackSlash